我曾经在这个问题上苦苦挣扎了好几天。解决方法是修改文件系统文件夹的安全用户权限,该文件夹是您站点映射的位置。但是IIS_IUSRS不是您必须授权的唯一帐户。
或者
以下是对我有效的解决方案。
按照以下步骤将服务器匿名用户设置为继承自应用程序池标识:
TL;DR;
在大多数情况下,授予以下账户(其中之一或两者都可)访问权限即可:
具有以下访问权限:
就是这样!
继续阅读以获得更详细的解释...
根据上图所选内容为Web应用程序文件夹的ACL授予权限:
IUSR
(在我的情况下) + IIS AppPool\DefaultAppPool
授予访问权限。IIS AppPool\DefaultAppPool
授予权限。IIS AppPool\DefaultAppPool
账户是新IIS Web应用程序的默认AppPool帐户,如果您设置了自定义帐户,请使用自定义帐户。
将以下权限授予以上账户:
读取和执行
列出文件夹内容
读取
由于您正在处理静态内容...
在充当您网站根目录的文件夹上-如果右键单击>属性>安全性,是否显示"用户"? 如果没有,请单击"添加..."并输入它,确保完成后单击"应用"。
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
也请看一下这个:
要添加路由,请添加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>
如果其他人遇到了这个问题,我希望能帮到你们。我排除了所有故障并发现,由于我从MAC解压缩了一些文件,Microsoft自动加密了这些文件而没有任何通知。经过数小时的尝试设置文件夹权限,我进去看到文件名是绿色的,这意味着文件被加密了,即使文件夹权限正确,IIS仍会抛出相同的错误。
在与 IIS 的身份验证设置相关的未经授权接收问题中,可能会出现与提供程序有关的问题。
在我的案例中,如果我将 Windows 身份验证提供程序设置为 "Negotiate",就会遇到这个问题。当我选择 "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)