IIS-401.3-未经授权

IIS-401.3-未经授权,iis,iis-7,Iis,Iis 7,我正在尝试开始使用IIS。我在IIS管理器上创建了一个新站点,将其映射到文件系统上的一个文件夹,并将index.html添加到该文件夹中。我已将此站点的端口设置为85。当我尝试访问http://localhost:85/index.html,我收到以下错误消息: 401.3-未授权-由于访问控制列表(ACL),您没有查看此目录或页面的权限 Web上此资源的配置或加密设置 服务器 我向文件夹中的每个人授予了读取权限,然后重试。然后我可以访问该页面 然后,我将文件夹的属性与wwwroot的属性进行了

我正在尝试开始使用IIS。我在IIS管理器上创建了一个新站点,将其映射到文件系统上的一个文件夹,并将index.html添加到该文件夹中。我已将此站点的端口设置为85。当我尝试访问
http://localhost:85/index.html
,我收到以下错误消息:

401.3-未授权-由于访问控制列表(ACL),您没有查看此目录或页面的权限 Web上此资源的配置或加密设置 服务器

我向文件夹中的每个人授予了读取权限,然后重试。然后我可以访问该页面

然后,我将文件夹的属性与wwwroot的属性进行了比较。我发现wwwroot对IIS_IUSR具有读取权限…当我对文件夹执行相同操作并重试时,再次出现上述错误。 我检查了默认情况下是否启用了匿名访问,但仍然出现此错误


为什么会发生这种情况?解决问题的正确方法是什么?

因为您处理的是静态内容


在作为网站根目录的文件夹上-如果右键单击>属性>安全,列表中是否显示“用户”?如果没有单击“添加…”并键入,请确保完成后单击“应用”

我在同一个问题上挣扎了好几天。可以通过修改站点映射到的文件系统文件夹的安全用户访问属性来解决此问题。但IIS_IUSRS并不是您必须授权的唯一帐户

  • 在IIS管理控制台中,在站点配置的身份验证部分,修改“匿名身份验证”行并检查设置为“特定用户”的帐户(我的帐户是IUSR)
  • 向列为特定用户的帐户授予站点文件夹的读取和执行权限

  • 在IIS管理控制台中,在站点配置的身份验证部分,通过选择“应用程序池的标识”而不是“特定用户”,修改“匿名身份验证”行
尝试以下解决方案:

还要检查运行IIS AppPool的用户是否具有该文件夹/文件的读取权限

看看这个:

也可以看看这个:


以下是对我有效的方法

  • 将应用程序池标识设置为可分配的帐户 对文件夹的权限
  • 确保已授予源目录和所有相关文件 对分配给应用程序池标识属性的帐户的文件读取权限
  • 在IIS中,在服务器根节点上,设置要从中继承的匿名用户 应用程序池标识。(这是我挣扎的部分)
  • 要将服务器匿名设置为从应用程序池标识继承,请执行以下操作

    • 打开IIS管理器(inetmgr)
    • 在左侧窗格中选择根节点(服务器主机名)
    • 在中间窗格中打开“身份验证”小程序
    • 突出显示“匿名身份验证”
    • 在右侧窗格中选择“编辑…”(应打开一个对话框)
    • 选择“应用程序池标识”

      • TL;博士

        在大多数情况下,授权访问以下帐户(一个或两个)就足够了:

      • IIS AppPool\DefaultAppPool
      • IUSR
      • 使用访问权限

      • 读取并执行
      • 列出文件夹内容
      • 阅读
      • 就这样

        请继续阅读以获得更详细的解释


      • 打开IIS并选择您的应用程序
      • 在右侧单击“身份验证”
      • 选择“匿名身份验证” 在这里
      • 弹出以下对话框
      • 授予对web应用程序文件夹ACL的访问权限,具体取决于在上图中选择的内容:

        • 特定用户:为两个
          IUSR
          (在我的情况下)+
          IIS-AppPool\DefaultAppPool
        • 应用程序池标识:仅授予对
          IIS AppPool\DefaultAppPool
          的访问权限
        IIS AppPool\DefaultAppPool
        account是新IIS web应用程序的默认AppPool帐户,如果设置了自定义帐户,请使用自定义帐户


        授予帐户以下权限:

      • 读取并执行
      • 列出文件夹内容
      • 读取

      • 以防万一其他人遇到这种情况。我解决了所有这些步骤,结果是因为我从MAC电脑上解压了一些文件,微软在没有任何通知的情况下自动加密了这些文件。在尝试设置文件夹权限数小时后,我进入并看到文件名为绿色,这意味着文件已加密,即使文件夹权限正确,IIS也会抛出相同的错误。

        与接收未经授权的文件相关的另一个问题与来自的身份验证设置中使用的提供商有关IIS。 在我的例子中,如果我将Windows身份验证提供程序设置为“协商”,我就会遇到这个问题。在我选择“NTLM”选项后,访问权被授予

        有关身份验证提供商的更多信息


        请在Windows 2012 R2中启用以下项目


        如果您使用的是应用程序池身份验证(而不是IUSR),您应该这样做,那么这是我能找到的处理IIS中401个错误的最佳方法:


        打开IIS管理器,导航到站点部署到的网站或应用程序文件夹

      • 打开高级设置(位于右侧操作窗格中)
      • 记下应用程序池名称,然后关闭此窗口
      • 双击身份验证图标以打开身份验证设置
      • 禁用Windows身份验证
      • 右键单击匿名身份验证,然后单击编辑
      • 选择应用程序池标识单选按钮
        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)
        
        <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>