我正在运行Windows Server 2008 R2实例上运行Sitecore 6.3.1的网站。
一切都很好,直到我从我们的前端开发人员提供的ZIP档案中复制一些静态文件(CSS,JS,图像)到C:\Inetpub\wwwroot\(website name)\Website\static 。
现在,任何时候我尝试访问任何这些静态文件(例如, http://localhost/static/css/main.css ),我得到一个401.3错误(根据C:\inetpub\logs\LogFiles\W3SVC2\u_ex110216.log )。
Sitecore应用程序本身工作得很好,静态文件是完全可访问的,直到我用更新的文件replace它们。
根据我可以find关于这个主题的每一个资源,一个401.3错误表明所请求资源的ACL不允许访问IIS用户帐户。
我查看了当前正在工作的文件(例如, C:\Inetpub\wwwroot\(website name)\Website\default.css )的ACL,它看起来与无法访问的静态文件相同。
我检查了Sitecore站点的应用程序池设置,匿名用户是“IUSR”。 按照这个线程中的说明,我给了IUSR帐户对C:\Inetpub\wwwroot\(website name)\Website\static目录的读取和执行权限,并recursion地将其应用到该目录中的所有子文件夹和文件。 没有骰子。
根据在这个线程中提供的build议,我试图完全删除static目录,并手工重新创build它的子目录,以便它们从父Website目录inheritance权限。 但是,问题依然存在。
我还有什么可以尝试解决这些401.3错误?
我在Windows Server 2008上遇到了类似的问题:
为了testing我用了两页:
hello.html hello.aspx hello.aspx挺好的。 hello.html扔了401.3未经授权。 当我尝试浏览到页面时,Microsoft sysinternals procmon在应用程序池用户的 hello.html报告了“ACCESS DENIED”。
要解决此问题,我将用户IUSR添加到网站文件夹的访问控制列表。 IUSR未在Windowspipe理工具用户列表中列出,但是如果在文件夹属性安全性选项卡中添加用户时search它,则会显示IUSR。
我发现procmon报告用户试图访问hello.html是应用程序池用户 ,而不是iusr,这让我感到非常奇怪(而且令人困惑)。
我发现是什么导致了这个问题:
事实certificate,为每个文件设置了“encryption内容以保护数据”属性。
我访问了每个文件的属性,并取消选中该checkbox(右键单击 – >属性 – >高级…(在属性旁边) – >取消选中encryption内容以保护数据),一切恢复正常。
我今天遇到过类似的问题,对于我来说,解决这个问题的第二点就是给予IUSR账户读取和修改文件和目录的权限(这不仅仅是我正在处理的静态文件)
检查应用程序池标识是否具有网站和networking服务的权限。