我正在尝试在 localhost 上测试我的 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
- 系统
- 管理员
- 内森(我)
我可以尝试什么来解决这个问题?
IIS 7 还创建“IUSR”作为默认用户以通过 IIS 访问文件。因此,使用户 IUSR 具有对文件/文件夹的读取权限。
如何检查IUSR是否已读取Access?右键单击 -> 文件夹 -> 属性 -> 安全选项卡 查看 IUSR 是否在组或用户名列表中,如果否。
单击编辑 -> 添加 -> 高级 -> 立即查找 -> 选择 IUSR 并单击确定四次
在另一个论坛上找到了这个,所以我不能相信,但我做到了,它对我有用:
“尝试更改 IIS7 中的匿名身份验证设置:
单击身份验证,选择匿名身份验证后单击编辑。在打开的窗口中选择应用程序池标识并单击确定。"
我在 Windows Server 2008 上的 IIS 7.5 中遇到了同样的问题。对我来说,以下步骤可以解决这个问题:
进行此更改后,我的 401.3 错误消失了。
您使用的是登录机制,还是只是匿名身份验证?
如果匿名,请进入 IIS 管理器,在身份验证图标中,选择匿名身份验证名称,然后单击操作中的编辑按钮。检查那里指定了哪个用户,并确保它具有对站点文件/文件夹的权限。
如果您有某种形式的登录系统,请确保您登录的用户有权访问该站点的文件,并确保您运行的应用程序池的 ID 至少具有读取权限到文件。
默认情况下,在 IIS 7.5 中,每个应用程序池都在其自己的“虚拟身份”下运行。应用程序池的身份是用于访问文件系统的凭据。
我不确定它的机制,但微软这样做是为了提高默认安装的安全性,同时减轻在某些安装场景中创建服务帐户的需要。无论如何,结果是您必须识别这个“虚拟身份”帐户并授予它访问您的目录的权限,或者更改应用程序池的服务帐户。
应用程序池虚拟身份被命名为“IIS AppPool\”,因此如果您使用的是 DefaultAppPool,其身份将是“IIS AppPool\DefaultAppPool”。
有关更完整的详细信息,请参阅本文。
Hi For Me on IIS 8 工作:1) 进入 IIS 虚拟目录 - 2) 身份验证 - 3) 匿名身份验证 - 4) 设置应用程序池标识。
由于上面的答案都没有帮助我,我想我会分享我是如何解决这个问题的,因为我在运行 win7 和 IIS7 的本地机器上遇到了这个问题。
转到 IIS7 -> 应用程序池
找到您站点的应用程序池(在我的情况下为 DefaultAppPool),右键单击并选择高级选项。
查找流程模型一章并将字段身份更改为您确定可以访问您网站文件夹中的文件的用户(在我的情况下是本地管理员)
回答包括来自已接受答案的评论中的信息。
在 Windows Server 2008r2 上的 IIS 7.5 中,已包含 IIS_IUSRS 组,但仍必须将单独的 IUSR 组添加到权限中以允许文件访问/下载。
有关帐户差异的详细信息,请参阅了解 IIS 中的内置用户和组帐户。
试试这个... 转到计算机管理(右键单击我的计算机并选择管理)-> 本地用户和组-> 用户-> 选择 IUSR_MACHINENAME -> 右键单击属性-> 确保它是成员IIS_WPG 和用户而不是来宾。
我正在使用 Server 2008 R2,并且 IUser 帐户在列表中不可用。
尝试使用安装 IIS 的客户端,
aspnet_regiis -c
然后重置 IIS。