[英]IIS - 401.3 - Unauthorized
我正在尝试开始使用 IIS。 我在 IIS 管理器上创建了一个新站点,将其映射到我的文件系统上的一个文件夹并将 index.html 添加到该文件夹中。 我已将此站点的端口设置为 85。 当我尝试访问http://localhost:85/index.html
,我收到以下错误消息:
401.3 - unathorized - 由于 Web 服务器上此资源的访问控制列表 (ACL) 配置或加密设置,您无权查看此目录或页面。
我向文件夹中的每个人授予了读取权限,然后再试了一次。 然后我可以访问该页面。
然后我将我的文件夹的属性与 wwwroot 的属性进行了比较。 我发现 wwwroot 对 IIS_IUSRS 具有读取权限...当我对我的文件夹执行相同操作并再次尝试时,我再次收到上述错误。 我检查了默认情况下启用匿名访问,但我仍然收到此错误。
为什么会发生这种情况? 解决问题的正确方法是什么?
我在这个问题上挣扎了好几天。 可以通过修改您的站点所映射到的文件系统文件夹的安全用户访问属性来解决。 但是 IIS_IUSRS 不是您必须授权的唯一帐户。
或
这对我有用。
要将服务器匿名设置为从应用程序池标识继承,请执行以下操作。
TL; 博士;
在大多数情况下,授予对以下帐户(一个|两个)的访问权限就足够了:
具有访问权限:
就是这样!
请继续阅读以获取更详细的解释...
根据上图中选择的内容授予对 Web 应用程序文件夹的 ACL 的访问权限:
IUSR
(在我的情况下)+ IIS AppPool\\DefaultAppPool
访问权限IIS AppPool\\DefaultAppPool
访问权限 IIS AppPool\\DefaultAppPool
账户是新建 IIS Web 应用程序的默认 AppPool 账户,如果您设置了自定义账户,请使用自定义账户。
为帐户授予以下权限:
Read & Execute
List folder contents
Read
由于您正在处理静态内容...
在作为您网站根目录的文件夹中 - 如果您右键单击 > 属性 > 安全性,“用户”是否会显示在列表中? 如果没有单击“添加...”并输入,请确保在完成后单击“应用”。
试试这个解决方案:
https://serverfault.com/questions/38222/iis-7-5-windows-7-http-error-401-3-unauthorized
还要检查运行 IIS AppPool 的用户是否对该文件夹/文件具有读取权限。
看看这个:
http://www.iis.net/learn/manage/configuring-security/application-pool-identities
也看看这个:
以防万一其他人遇到这个。 我对所有这些步骤进行了故障排除,结果证明是因为我从 MAC 中解压缩了一些文件,Microsoft 自动在没有任何通知的情况下对文件进行了加密。 在尝试设置文件夹权限数小时后,我进入并看到文件名是绿色的,这意味着文件已加密,即使文件夹权限正确,IIS 也会抛出相同的错误。
为路由添加一个 web.config
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="React Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
另一个可能出现的与接收未经授权有关的问题与 IIS 的身份验证设置中使用的提供程序有关。 在我的情况下,如果我将 Windows 身份验证提供程序设置为“协商”,我就会遇到这个问题。 在我选择“NTLM”选项后,访问被授予。
有关身份验证提供程序的更多信息
如果您正在使用应用程序池身份验证(而不是 IUSR),那么您应该这样做,那么Jean Sun 的这个检查列表是我能找到的最好的处理 IIS 401 错误的列表:
打开 IIS 管理器,导航到站点部署到的网站或应用程序文件夹。
运行以下命令:
icacls <path_to_site> /grant "IIS APPPOOL\\<app_pool_name>"(CI)(OI)(M)
例如:
icacls C:\\inetpub\\wwwroot\\mysite\\ /grant "IIS APPPOOL\\DEFAULTAPPPOOL":(CI)(OI)(M)
尤其是步骤 5. 和 6. 经常被忽视并且在网络上很少提及。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.