我正在尝试在本地主机上测试我的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
SYSTEM
管理员
Nathan(me)


我该如何解决?

评论

我已经将这个问题追了两个小时。我已经具有IUSR,并且Server \ IUSR将具有读取权限。我的问题原来是从Zip文件提取的加密文件夹。如果文件夹名称为绿色,请尝试从“属性”框的“高级”设置中删除该复选框。这解决了我的问题。

#1 楼

IIS 7还创建“ IUSR”作为默认用户,以通过IIS访问文件。因此,使用户IUSR具有对文件/文件夹的读取权限。

如何检查IUSR是否具有读取访问权限?
右键单击->文件夹->属性->安全选项卡
请参阅如果IUSR在“组或用户名”列表中,则为否。

单击“编辑”->“添加”->“高级”->“立即查找”->选择“ IUSR”,然后单击“确定”四次

评论


确保您从正确的位置进行搜索。我在工作领域中搜索IUSR,却一无所获。然后,将位置更改为我的计算机名称。

–迈克·布兰福德(Mike Blandford)
2011年4月8日14:50

注意:它要求IUSR和IIS_IUSRS都具有访问权限才能在我的计算机上工作。我尝试在添加IUSR之后删除IIS_IUSRS,以为IUSR是我所需要的,但是它崩溃了。

–kdawg
2012年12月12日在22:36

令我惊讶的是,仅添加IIS_IUSR是不够的。我还必须添加IUSR。值得记住的:o)

–欧文·布莱克(Owen Blacker)
13 Mar 17 '13 at 0:21

当然,默认情况下,IUSR用户是否已经是IIS_IUSRS的成员?我的服务器似乎没有为wwwroot设置默认权限时提及IUSR。

– NickG
2014年7月11日在13:01



#2 楼

在另一个论坛上找到了这个,所以我不能功劳,但是我做到了,它为我工作:

“尝试在IIS7中更改匿名身份验证设置:

单击身份验证然后选择“匿名身份验证”,然后单击“编辑”。在打开的窗口中选择“应用程序池标识”,然后单击“确定”。“

评论


这就是为我做的。

–克里斯·马里西奇(Chris Marisic)
2010-09-29 20:48

我正在使用模拟,这就是问题所在。不知道为什么,但是它起作用了!

–贾罗德
13年7月25日在14:54

这阻止了我今天撕掉我的所有头发。谢谢。

–pauska
2013年12月18日16:14

在IIS 8.5上,似乎新应用程序的默认设置不是使用应用程序池标识,而是使用IUSR。对我来说似乎有点陷阱!

–病原
17年4月6日在22:54

猜想有必要为“正在运行应用程序池的用户”和“在“匿名”身份验证后被应用程序池假冒的用户”使用单独的身份是有道理的-但只有事后看来,并且在找到此答案之后!

– Shambulator
17年5月12日13:10

#3 楼

我在Windows Server 2008的IIS 7.5中遇到了相同的问题。对我来说,以下步骤可以解决此问题:编辑
双击身份验证

单击“匿名身​​份验证”,然后单击“操作”下的“编辑...”

更改以使用应用程序池身份凭证而不是特定用户(我的是IUSR)

进行更改后,我的401.3错误消失了。

评论


信不信由你,这是2020年,我仍然在维护古老的IIS7.5服务器。这篇文章很有帮助。

–CreativeNotice
20-11-13在22:13

#4 楼

您是使用登录机制还是匿名身份验证?

如果是匿名身份,请进入IIS管理器,在“身份验证”图标中,选择匿名身份验证名称,然后在“操作”中单击“编辑”按钮。检查在那里指定了哪个用户,并确保它具有对站点文件/文件夹的权限。

如果您使用某种形式的登录系统,请确保您所登录的用户具有对站点文件的权限,并确保您所拥有的应用程序池的ID正在运行的文件至少具有对文件的读取访问权限。

#5 楼

默认情况下,使用IIS 7.5,每个应用程序池都以其自己的“虚拟身份”运行。应用程序池的身份是用于访问文件系统的凭据。

我不确定它的机制,但是Microsoft这样做是为了增加默认安装的安全性,同时减轻了在某些安装方案中需要创建服务帐户。无论如何,最终结果是您必须标识此“虚拟身份”帐户并授予其对目录的访问权限,或者更改应用程序池的服务帐户。

应用程序池虚拟身份称为“ IIS AppPool” \”,因此,如果您使用的是DefaultAppPool,则其标识为“ IIS AppPool \ DefaultAppPool”。

有关更多完整信息,请参阅本文。

#6 楼

您好,我在IIS 8上工作:
1)进入IIS虚拟目录-2)身份验证-3)匿名身份验证-4)
设置应用程序池标识。

评论


在我遇到的所有情况下,IUSR答案和此答案都是完整解决方案所必需的

–布赖恩·诺伯劳赫(Brian Knoblauch)
17年1月4日在19:22

#7 楼

由于上述答案均无济于事,我想我将分享在运行Win7和IIS7的本地计算机上遇到此问题时如何解决此问题。



转到到IIS7->应用程序池

查找站点的应用程序池(在我的情况下为DefaultAppPool),
右键单击并选择“高级选项”。

查找章节处理对字段标识进行建模并将其更改为用户
,您肯定知道可以访问您的网站文件夹中的文件(在本例中为本地管理员)



#8 楼

回答以包含来自已接受答案的注释中的信息。

在Windows Server 2008r2的IIS 7.5中,已经包含IIS_IUSRS组,但是仍必须将单独的IUSR组添加到权限中以允许文件访问/下载。

有关帐户差异的详细信息,请参阅了解IIS中的内置用户帐户和组帐户。

#9 楼

试试这个...
转到“计算机管理”(右键单击我的计算机,然后选择“管理”)->本地用户和组->用户->选择IUSR_MACHINENAME->右键单击属性->确保它是IIS_WPG的成员,并且是用户而不是Guest的成员。


我正在使用Server 2008 R2,并且该列表中没有IUser帐户。

#10 楼

尝试使用aspnet_regiis -c安装IIS的客户端,然后重置IIS。

#11 楼

对于还不够的用户:

我可以使用它:


打开网站的功能视图。
转到处理程序映射。
查找
.cshtml的路径
单击鼠标右键,然后单击“编辑功能许可”。
选择“执行”。单击确定。网站。