访问路径'c:\ inetpub\wwwroot\myapp\App_Data'被拒绝

Smi*_*ith 14 asp.net iis access-denied

我刚刚在Windows XP上安装了IIS.

当我尝试执行应用程序时,出现错误:

访问路径'c:\ inetpub\wwwroot\myapp\App_Data'被拒绝.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.UnauthorizedAccessException:拒绝访问路径'c:\ inetpub\wwwroot\myapp\App_Data'.

ASP.NET无权访问所请求的资源.考虑将资源的访问权限授予ASP.NET请求标识.ASP.NET具有基本进程标识(通常是IIS 5上的{MACHINE}\ASPNET或IIS 6上的网络服务),如果应用程序未模拟,则使用该标识.如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户.

要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择"属性",然后选择"安全"选项卡.单击"添加"以添加适当的用户或组.突出显示ASP.NET帐户,并选中所需访问的框.

来源错误:

第70行:受保护的子cmbSettingFiles_SelectedIndexChanged(ByVal sender As Object,ByVal e As System.EventArgs)处理cmbSettingFiles.SelectedIndexChanged
第71行:Dim doc As XmlDocument = New XmlDocument()
第72行:doc.Load(Path.Combine(basePath,cmbSettingFiles. SelectedValue))第74行:Dim settingsNode As XmlNode = doc.SelectSingleNode("/ settings")

源文件:C:\ myapp\install\install.aspx.vb行:72

我这样做了尝试格栅许可:

要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择"属性",然后选择"安全"选项卡.单击"添加"以添加适当的用户或组.突出显示ASP.NET帐户,并选中所需访问的框.

但错误仍然存​​在.

这与我的代码有什么关系吗?

我该如何解决这个问题?

编辑

我已经解决了我的开发机器上的问题,但我仍然在我的Web服务器上收到错误.

谢谢.

Jos*_*ica 16

对于那些在Windows Server上运行IIS的人:

默认情况下,IIS用户没有该wwwroot文件夹的写入权限.这可以通过向wwwroot用户授予完全权限来解决wwwroot.

  1. 打开文件资源管理器并转到 inetpub
  2. 右键单击wwwroot并单击"属性"
  3. 转到"安全"选项卡,然后单击"编辑..."以编辑权限
  4. 查找并选择IIS用户.在我的情况下,它被称为wwwroot.
  5. 选中所有权限的"允许"复选框.


Nir*_*ngh 12

尝试转到App_Data文件夹属性并添加具有读写权限的ASPNET用户

参考:
如何为AppMata Pro的App_Data文件夹分配正确的权限
APP_DATA文件夹上的ASP.NET 权限
ASP/ASP.NET处理写权限的最佳方法是什么?

如果它无法解决您的问题,请检查您的XML文件是否未被另一个使用这些配置文件的线程打开..如果仍然存在则提供更多详细信息.


Ken*_*enF 6

考虑您的文件是否是只读的,那么额外的参数可能会有所帮助 FileStream

using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))
Run Code Online (Sandbox Code Playgroud)