IIS 7.5(Windows 7)-HTTP错误401.3-未经授权


81

我正在尝试在本地主机上测试我的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
  • 系统
  • 管理员
  • 内森(我)

我该如何解决?


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

Answers:


123

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

如何检查IUSR是否已读取Access?右键单击->文件夹->属性->安全选项卡查看IUSR是否在组或用户名列表中,如果否。

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


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

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

1
令我惊讶的是,仅仅添加IIS_IUSRs还不够。我还必须补充IUSR。值得记住的:o)
欧文·布莱克

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

33

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

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

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


5
这就是为我做的。
克里斯·马里西奇

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

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

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

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

20

我在Windows Server 2008的IIS 7.5中遇到了相同的问题。对我来说,以下步骤可以解决该问题:

  • 打开IIS管理器
  • 点击您要编辑的网站
  • 双击身份验证
  • 单击“ 匿名身份验证”,然后在“ 操作”下单击“ 编辑... ”。
  • 更改为使用应用程序池身份凭证而不是特定用户(我的是IUSR)

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


10

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

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

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


3

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

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

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

请参见文章更完整的细节。


3

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


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

2

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

  • 转到IIS7->应用程序池

    找到您站点的应用程序池(在我的示例中为DefaultAppPool),右键单击并选择“高级选项”。

    找到“过程模型”一章,然后将“标识”字段更改为您确定可以访问您网站文件夹中文件的用户(在我的情况下为本地管理员)



1

尝试此操作...转到计算机管理(右键单击我的计算机,然后选择管理)->本地用户和组->用户->选择IUSR_MACHINENAME->右键单击属性->确保它是成员IIS_WPG和用户而不是来宾。


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



1

对于这还不够的用户:

我得到它与此一起工作:

  • 打开网站的功能视图。
  • 转到处理程序映射。
  • 查找.cshtml的路径
  • 右键单击并单击“编辑功能权限”
  • 选择执行
  • 点击确定。

现在尝试刷新您的网站。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.