【问题标题】:Unauthorized access error to html pages in IIS 7.0IIS 7.0 中对 html 页面的未经授权访问错误
【发布时间】:2010-12-26 03:32:40
【问题描述】:

我正在使用 VSTS 2008 + C# + .Net 3.5 + IIS 7.0。我创建了一个新网站并将一个 html 文件放入目录中。当我在IIS管理器中使用浏览功能浏览html文件时,我遇到了以下错误,有什么问题吗?

顺便说一句:我对未经授权的错误感到非常困惑,因为我在管理员帐户下运行工作进程。从错误消息中,我很困惑为什么登录方法是匿名的,而不是使用管理员帐户?

HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.

Module IIS Web Core 
Notification AuthenticateRequest 
Handler StaticFile 
Error Cde 0x80070005 
Requested URL http://localhost:80/a.html 
Physical Path C:\test\simplehosttest\a.html 
Logon Method Anonymous 
Logon User Anonymous 

【问题讨论】:

  • 您启用目录浏览了吗?
  • 安装 iis 时是否启用了静态内容/静态文件处理程序?
  • 感谢 mglmnc,“您是否启用了目录浏览”——如何检查?以前从未这样做过。
  • 谢谢iwo,如何检查“安装iis时是否启用静态内容/静态文件处理程序”?

标签: c# .net iis visual-studio-2008 iis-7


【解决方案1】:

C:\test\simplehosttest\a.html

请授予 IUSR 帐户对此文件或其文件夹的必要权限。然后401.3错误就会消失。

【讨论】:

  • 我已经将worker进程的账号设置为管理员,为什么还有权限问题?管理员应该比IUSR更强大?
  • 我尝试添加 IUSR 并且它有效,酷!为什么使用IUSR可以解决我的问题?这个特殊用户是干什么用的?
  • IUSR 用作默认匿名用户帐户。这意味着当您的站点可以匿名访问时,实际上 IIS 使用 IUSR 帐户作为所有用户的登录帐户。然后,您必须授予 IUSR 对文件夹的必要权限,以便它可以访问它们。
【解决方案2】:

在 IIS 8.5(全新安装)中,我让我的应用程序池作为自定义标识运行,文件存储在 /inetpub/wwwroot 之外的文件夹中。该身份具有所有适当的文件权限,但我仍然收到 acl 错误。

经过一番挣扎,我发现在 IIS 管理器->我的站点->身份验证->匿名身份验证->编辑中,用于匿名身份验证的身份默认设置为特定用户 (IUSR)。将其设置为使用应用程序池标识为我修复了它!

【讨论】:

  • 这也立即为我解决了这个问题,任何人都可以评论为什么默认为IUSR而不是Application pool identity
【解决方案3】:

基本上,您必须将文件的读取权限授予在 IIS 中运行您的应用程序池的身份。在 2008 服务器和 Vista 上,该身份(除非您已明确更改)将是“NT Authority\Network Service”,在 windows7 上是“IisAppPool\AppPoolIdentity”(不要问他们为什么在 win7 上这样做,这是一个 WTF如果你问我)

【讨论】:

  • 我一头雾水,有一个用户名叫“AppPoolIdentity”?
  • 我尝试向用户“IUSR”添加 html 页面权限,并且可以正常工作。为什么使用IUSR可以解决我的问题?这个特殊用户是干什么用的?
  • 我将 IIS_IUSR 添加到文件权限,而不是“IUSR”。真的厌倦了你的废​​话微软
【解决方案4】:

我发现这个问题的另一个原因是我正在部署的网站是以 zip 文件的形式发送给我的。由于某种原因(可能是因为文件是在 Mac 上构建的),这些文件带有 Encrypted for Security 位集。这些文件在 Windows 资源管理器中显示为绿色。

【讨论】:

    【解决方案5】:

    我遇到了同样的问题,但建议的修复都没有解决我的问题。我试图在 Windows Server 2008 上的 IIS7 上部署带有表单身份验证的 ASP.Net 4.0 Web 应用程序。解决问题的方法是为处理程序提供读取和脚本权限,这可以通过打开处理程序映射然后选择“编辑功能”来完成权限”从右侧菜单中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      相关资源
      最近更新 更多