Hejsan! Du har troligen inte rätt att nå katalogen. Se till att kontot "aspnet" har läsrättigheter i den katalogen du försöker nå från din applikation Tack, men jag har kollat detta och aspnet kontot finns där med full behörighet. Ditt problem bör gå att lösa genom att lägga till ett permission set. Nåt sånt här borde funka: Är det en ASP.NET application så bör du kolla vilken user som är konfigurerad i AppPool:en. Det kan vara NETWORK SERVICE kontot och inte ASP.NET. Bara ett tips...System.Security.Permissions.FileIOPermission
Jag har ett problem som jag hoppas forumet kan hjälpa mig med. Jag har följande metod:
private XmlNode GetXmlNode(string pagename)
{
string xPath = "meta/" + this.GetCurrentCulture().Substring(0,2) + "/page[@name='" + pagename + "']";
XmlDocument doc = new XmlDocument();
doc.Load("Common/XML/Tags.xml");
XmlNode node = doc.SelectSingleNode(xPath);
return node;
}
Denna metod har för mig funkat tidgare då jag körde under XP. Men nu efter en uppgradering till Vista Ultimate får jag följande felmeddelande:
Begäran om behörighet av typen System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 misslyckades.
System.Security.SecurityException was unhandled by user code
Message="Begäran om behörighet av typen System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 misslyckades."
Source="mscorlib"
StackTrace:
vid System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
vid System.Security.CodeAccessPermission.Demand()
vid System.IO.Path.GetFullPath(String path)
vid System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)
vid System.Xml.XmlUrlResolver.ResolveUri(Uri baseUri, String relativeUri)
vid System.Xml.XmlTextReaderImpl..ctor(String url, XmlNameTable nt)
vid System.Xml.XmlDocument.Load(String filename)
vid BasePage.GetXmlNode(String pagename)
vid BasePage.GetMetaInfo(String pagename)
vid BasePage.SetWebHead(String pagename)
vid _Default.Page_Load(Object sender, EventArgs e)
vid System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
vid System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
vid System.Web.UI.Control.OnLoad(EventArgs e)
vid System.Web.UI.Control.LoadRecursive()
vid System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
Någon som vet vad som är galet och vad jag kan göra för att rätta till felet?
// nickeSv: System.Security.Permissions.FileIOPermission
Sv:System.Security.Permissions.FileIOPermission
Vad kan det annars vara?
// nickeSv: System.Security.Permissions.FileIOPermission
<PermissionSet class="NamedPermissionSet"
version="1"
Name="MyXmlFilePermissionSet"
Description="Permission set for my file.">
<IPermission class="FileIOPermission"
version="1"
Read="C:\minfil.xml"/>
<IPermission class="SecurityPermission"
version="1"
Flags="Execution, Assertion"/>
</PermissionSet>
try
{
FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, @"C:\minfil.xml");
permission.Assert();
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\minfil.xml");
...
}
catch
{...}
Du kan även sätta ett metod-attribut:
FileIOPermissionAttribute(SecurityAction.Assert, Read=@"C:\minfil.xml")]
private XmlNode GetXmlNode(string pagename)
{
...
}Sv: System.Security.Permissions.FileIOPermission