我正在尝试在本地主机上测试我的 ASP.Net 网站,但出现了以下错误:
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.
我在网站应用程序文件夹上拥有以下用户,具有完全读/写权限:
- 网络服务
- iis_iusrs
- 系统
- 管理员
- 內森(我)
我可以尝试什么来修复此问题?
答案1
IIS 7 还创建了“IUSR”作为通过 IIS 访问文件的默认用户。因此,请让用户 IUSR 拥有文件/文件夹的读取权限。
如何检查 IUSR 是否有读取权限?右键单击 -> 文件夹 -> 属性 -> 安全选项卡查看 IUSR 是否在组或用户名列表中,如果没有。
单击编辑 -> 添加 -> 高级 -> 立即查找 -> 选择 IUSR 并单击四次确定
答案2
在另一个论坛上发现了这一点,所以我不能承担责任,但我做到了,并且对我有用:
“尝试更改 IIS7 中的匿名身份验证设置:
点击身份验证,选择匿名身份验证后点击编辑。在打开的窗口中选择应用程序池标识,点击确定。”
答案3
我在 Windows Server 2008 上的 IIS 7.5 中遇到了同样的问题。对我来说,以下步骤可以解决该问题:
- 打开 IIS 管理器
- 点击您要编辑的网站
- 双击验证
- 点击匿名身份验证,然后点击编辑...在下面操作
- 更改为使用应用程序池标识凭证而不是特定用户(我的是 IUSR)
在我做出此更改之后,我的 401.3 错误消失了。
答案4
默认情况下,在 IIS 7.5 中,每个应用程序池都以其自己的“虚拟身份”运行。应用程序池的身份是用于访问文件系统的凭据。
我不太清楚其中的原理,但微软这样做是为了提高默认安装的安全性,同时减少在某些安装情况下创建服务帐户的需要。无论如何,结果是您必须识别这个“虚拟身份”帐户并授予其访问您目录的权限,或者更改应用程序池的服务帐户。
应用程序池虚拟标识名为“IIS AppPool\”,因此如果您使用 DefaultAppPool,其标识将是“IIS AppPool\DefaultAppPool”。
看这文章以了解更完整的详细信息。