拒绝访问路径'xxx'(其中'xxx'是文件夹)

时间:2013-03-22 18:28:12

标签: c# asp.net iis iis-7.5

我知道很多次都曾问过这个问题,但是我在没有帮助的情况下浏览了数十个类似的问题。

当我的asp.net 4.0应用程序尝试访问本地驱动器上的文件夹时显示此错误,执行此操作:

XmlTextReader confReader = new XmlTextReader (filename);           
while (confReader.Read())  // <- error line
{
  // do something
}

在我的web.config中,我有&lt; Identity Impersonate =“true”&gt;。对于我已分配完全访问权限的文件夹:

everyone 
IIS APPPOOL\<custom apppoolname> 
NETWORK SERVICE

调试应用程序,我可以在有罪的行之前设置一个评估此调用的监视器:

System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();

调用显示当前用户是IIS APPPOOL \&lt; custom apppoolname&gt;。

我使用的是带有Sp1的Windows 7 64位。我知道这可能是愚蠢的,但我已经花了很多时间在这上面。

修改
问题在于变量“filename”,它指向正确的文件夹,但是对于配置问题,文件名丢失了(即内容是“c:\ data \”而不是“c:\ data \ file.xml” )。 Asp.net错误实际上令人困惑,因为我拥有访问该文件夹的所有权限。 DJKRAZE向我指出了正确的方向。

2 个答案:

答案 0 :(得分:1)

以下是我建议检查的内容

where are you declaring filename..?  Does the file even exist..?

你对该文件夹有权吗?你试过运行VS作为管理员..?你有没有为网络应用程序设置虚拟目录...就像你有一些不正确的配置,但无法真正告诉这个行的代码System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();  应该得出你的domain\\username or compuername\\username

很高兴FileName就是

答案 1 :(得分:0)

IIS要求服务器计算机中文件夹的路径具有Anonymous用户登录权限。

确保用户Anonymous有权访问该文件夹。