我刚刚在Windows XP上安装了IIS。
当我尝试执行某个应用时,出现错误:
拒绝访问路径'c:\ inetpub \ wwwroot \ myapp \ App_Data'。 描述:执行期间发生未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息: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)Handles 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帐户,和 选中所需访问的框。
但错误仍然存在。
这与我的代码有关吗?
我该如何解决这个问题?
修改
我已经解决了我的开发机器上的问题,但我仍然在我的网络服务器上收到错误。
感谢。
答案 0 :(得分:11)
尝试转到App_Data文件夹属性并添加带有read的ASPNET用户 并写入权限
价:
How to assign correct permissions to App_Data folder of WebMail Pro ASP.NET
Permissions on APP_DATA Folder
ASP/ASP.NET Best way to handle write permissions?
如果它无法解决您的问题,请检查您的XML文件是否未被另一个使用这些配置文件的线程打开..如果仍然存在则提供更多详细信息。
答案 1 :(得分:7)
对于那些在Windows Server上运行IIS的人:
默认情况下,IIS用户没有wwwroot
文件夹的写入权限。这可以通过向IIS_IUSRS
的{{1}}用户授予完全权限来解决。
wwwroot
C:/inetpub/
。答案 2 :(得分:4)
考虑一下你的文件是否只读,那么额外的参数可能有助于FileStream
using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))
答案 3 :(得分:1)
您确定要添加正确的用户吗?您是否检查过为应用程序应用程序池设置了哪个用户?
如果由于某种原因无法读取文件,也会发生此错误;例如文件被另一个应用程序锁定或使用。由于这是一个ASP.NET Web应用程序,因此您需要确保不执行任何需要锁定文件的操作;除非您能保证一次只能在您的页面上拥有一个用户。
您可以发布一个如何访问该文件的示例吗?它是什么类型的文件?代码片段将帮助您获得更准确的答案。
答案 4 :(得分:1)
我有类似的情况。我正在使用TFS进行源代码控制。我发现,当它被检入时,它使文件只读。这导致我的服务中的上述错误,它打开它们读/写。一旦我检查出来进行编辑。一切都很好。我正在考虑尝试在服务中只读它们。我认为一旦它们发布到生产服务器,这不是问题。仅在开发环境中。我在使用Entity Framework的服务中看到了类似的问题。如果签入.svc文件,则无法通过EF对数据库进行更新。
答案 5 :(得分:1)
我尝试使用所有权限添加ASP.net v4.0,添加NETWORK SERVICE用户但没有任何帮助。 最后,在App_Data文件夹中添加了DefaultAppPool用户的MODIFY权限,问题解决了。
答案 6 :(得分:0)
尝试向NETWORK SERVICE用户授予权限。
答案 7 :(得分:0)
请使用管理员权限运行Visual Studio ..此问题已解决..
拒绝访问路径C:\ inetpub \ wwwroot 被拒绝表示自助服务网站无法访问安装它的服务器上的特定文件夹。 这可能是因为该位置不存在,或者因为身份验证用户没有应用于写入此位置的任何权限。
答案 8 :(得分:0)
另一个原因可能是因为文件路径在您尝试写入的位置为空,这就是无法找到它的原因。这个错误发生的另一个原因。
答案 9 :(得分:0)
对我来说,我已经在wwroot中创建了一个名为excel的文件夹 D:\工作目录\ OnlineExam \ wwwroot \ excel 我正在尝试复制名称为excel的文件,该文件已经作为文件夹名称存在。所需的路径是 D:\工作目录\ OnlineExam \ wwwroot \ excel \ finance.csv 所以根据我更改代码如下
string copyPath = Path.Combine(_webHostEnvironment.WebRootPath, "excel\\finance");
questionExcelUpload.Upload.CopyTo(new FileStream(copyPath, FileMode.Create));
基本上检查是否存在与您的路径同名的文件夹或文件。
答案 10 :(得分:-1)
我终于找到了2019年的答案。您需要将“ IIS APPPOOL \ DefaultAppPool”添加到对要修改的目录具有安全权限的用户列表。确保他们拥有完整权限。
答案 11 :(得分:-1)
我创建了inet文件夹的副本,以复制该站点。它显示``访问被拒绝... / App_Data / viewstate / 1/6/6/0 ...''。检查时显示app_data文件夹中添加了IIS_IUSER,但未检查修改或写入访问权限。只需选中这些复选框,实例便开始运行。