我正在尝试使用IIS。我在IIS管理器上创建了一个新站点,将其映射到我的文件系统上的文件夹,并将index.html添加到该文件夹。我已将此站点的端口设置为85。当我尝试访问http://localhost:85/index.html
时,收到以下错误消息:
401.3 - unathorized - 由于访问控制列表(ACL),您无权查看此目录或页面 Web上此资源的配置或加密设置 服务器
我给了文件夹上的所有人读取权限并再次尝试。然后我可以访问该页面。
然后我将我的文件夹的属性与wwwroot的属性进行了比较。我发现wwwroot在IIS_IUSRS上有读取权限...当我在我的文件夹上做同样的事情并再次尝试时,我又得到了上述错误。 我检查了默认情况下启用了匿名访问,但我仍然收到此错误。
为什么会这样?解决问题的正确方法是什么?
答案 0 :(得分:124)
我已经在这个问题上挣扎了好几天。可以通过修改站点映射到的文件系统文件夹的安全用户访问属性来解决此问题。但IIS_IUSRS并不是您必须授权的唯一帐户。
OR
答案 1 :(得分:43)
这对我有用。
要将服务器设置为匿名以从应用程序池标识继承,请执行以下操作..
答案 2 :(得分:11)
因为你正在处理静态内容......
在充当网站根目录的文件夹上 - 如果右键单击>属性>安全性,“用户”是否显示在列表中?如果没有单击“添加...”并输入,请务必在完成后单击“应用”。
答案 3 :(得分:6)
<强> TL; DR; 强>
在大多数情况下授予对以下帐户的访问权限(一个|两个)就足够了:
访问权限:
就是这样!
继续阅读以获得更详细的解释...
根据上图中选择的内容授予对Web应用程序文件夹ACL的访问权限:
IUSR
(在我的情况下)+ IIS AppPool\DefaultAppPool
IIS AppPool\DefaultAppPool
访问权限 IIS AppPool\DefaultAppPool
帐户是新IIS Web应用程序的默认AppPool帐户,如果您已设置自定义帐户,请使用自定义帐户。
为帐户授予以下权限:
答案 4 :(得分:3)
试试这个解决方案:
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
还看看这个:
答案 5 :(得分:1)
以防万一其他人遇到这个问题。我对所有这些步骤进行了故障排除,结果是因为我从MAC解压缩了某些文件,Microsoft却没有任何通知地自动将其加密。经过数小时的尝试设置文件夹权限,我走进去,看到文件名是绿色的,这意味着文件已加密,即使文件夹权限正确,IIS也会抛出相同的错误。
答案 6 :(得分:1)
对于路由,添加一个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>
答案 7 :(得分:0)
与接收未经授权有关的另一个问题可能与从IIS进行身份验证设置中使用的提供程序有关。 就我而言,如果我将Windows身份验证提供程序设置为“协商”,则会遇到该问题。选择“ NTLM”选项后,便授予访问权限。
有关身份验证提供程序的更多信息
答案 8 :(得分:0)
答案 9 :(得分:0)
如果您应该使用应用程序池身份验证(而不是IUSR),那么此list of checks by 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.经常被忽略,在网络上很少提及。