我知道这已经被问过很多次了,但是我在没有帮助的情况下浏览了数十个类似的问题。
当我的 asp.net 4.0 应用程序尝试访问本地驱动器上的文件夹时,会显示此错误,执行以下操作:
XmlTextReader confReader = new XmlTextReader (filename);
while (confReader.Read()) // <- error line
{
// do something
}
在我的 web.config 中,我有 <Identity Impersonate="true">。对于我已分配完全访问权限的文件夹:
everyone
IIS APPPOOL\<custom apppoolname>
NETWORK SERVICE
调试应用程序时,我可以放置一个手表,在被指控的行之前评估这个调用:
System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
调用显示当前用户是 IIS APPPOOL\<custom apppoolname>。
我在带有 Sp1 的 Windows 7 64 位上。我知道这可能很愚蠢,但我已经花了很多时间在这上面。
编辑:
问题出在变量“filename”中,它指向正确的文件夹,但对于配置问题,文件名丢失(即内容是“c:\data\”而不是“c:\data\file. xml”)。Asp.net 错误实际上令人困惑,因为我拥有访问该文件夹的所有正确权限。DJKRAZE 为我指明了正确的方向。