我遇到了IIS和ACL的问题。
我在专用的AppPool下配置了一个MVC应用程序。 apppool在ApplicationPoolIdentity(在我的情况下是用户IIS AppPool \ accountinfo.local =与我的网站同名)下运行。
我在root文件夹上完全控制了这个用户,并确保继承了权限。
当我访问主页时,它运行正常,我可以访问它。但是,当我尝试访问我的静态内容时,它位于子文件夹(Content / Site.css)中,我收到错误401.3。
我确保权限是继承的,如果我转到有效权限,我可以看到该用户确实拥有完全控制权。
我启用了失败的请求跟踪和安全审核,但我没有得到任何日志文件,也没有事件查看器中的任何事件。
我在这里缺少什么?
答案 0 :(得分:26)
好的,我明白了。
显然,对静态内容的请求不会通过applicationIdentity,而是通过标准的IUSR帐户。
一旦我授予该用户对该文件夹的读取权限,它就开始工作了。
今天学到了新的东西。
答案 1 :(得分:3)
在IIS中使用匿名身份验证时,静态内容由“匿名用户身份”访问(并提供)。默认情况下,将其设置为特定的内置用户帐户“ IUSR”-因此,为什么授予该用户权限可以解决该问题(如Kenneth's excellent answer中所述)。
如果出于某种原因而不愿意使用IUSR帐户,则可以通过执行以下操作来更改IIS中网站的“匿名用户身份”:
此过程也记录在此Microsoft Docs文章中:
Build a Static Website on IIS - Step 3: Configure Anonymous Authentication
我将重述一个重要的原因,您可能会选择更改匿名身份验证身份,该身份已在该文章中提到:
如果您使用IUSR帐户,则向匿名用户授予与该帐户相关的所有内部网络访问权限。