【问题标题】:Access to the path 'xxx' is denied (where 'xxx' is a folder)拒绝访问路径“xxx”(其中“xxx”是一个文件夹)
【发布时间】:2013-03-22 18:28:12
【问题描述】:

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

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

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

在我的 web.config 中,我有 。对于我已分配完全访问权限的文件夹:

everyone 
IIS APPPOOL\<custom apppoolname> 
NETWORK SERVICE

调试应用程序,我可以在被指控的行之前放置一个评估此调用的手表:

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

调用显示当前用户是 IIS APPPOOL\

我使用的是带有 Sp1 的 Windows 7 64 位。我知道这可能很愚蠢,但我已经为此花费了大量时间。

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

【问题讨论】:

  • 你在哪里声明文件名..?该文件是否存在..?你有那个文件夹的权利..?您是否尝试过以管理员身份运行 VS ..?您是否为 Web 应用程序设置了虚拟目录..听起来您也有一些配置不正确,但根据初学者的代码无法真正判断这一行 System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString(); 应该产生您的 domain\\username or compuername\\username
  • 向我们提供堆栈跟踪中的调试信息。为了让我们帮助您,我们需要 f.cipriani 的详细信息!
  • 如果 IIS 没有该目录的权限,那么它会抛出异常。通常最好使用网络本地帐户,以便它根据本地计算机执行请求。不冒充。
  • 也是 UNC、本地路径等吗?确保 Windows 和 NTFS 帐户对该目录、共享、路径等具有 NTFS 权限。
  • @DJKRAZE 谢谢,就是这样,问题是“文件名”有一个有效的文件夹“xxx”的路径,但没有附加文件名(错误的配置,我的错)。实际上,我对错误消息感到困惑。如果您能将其作为答案,我将很乐意接受。

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


【解决方案1】:

这是我建议检查的内容

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

您是否有权访问该文件夹..?您是否尝试过以管理员身份运行 VS ..?您是否为 Web 应用程序设置了虚拟目录..听起来您也有一些配置不正确,但根据此行 System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString(); 的初学者代码无法真正判断 应该产生你的domain\\username or compuername\\username

很高兴FileName 就是这样

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-22
      • 2015-10-04
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多