我正在为我们的一个客户开发一个网站,几周来一直有一个烦人的问题。该问题是间歇性的,可能一天发生两次或两周内发生一次。
发生这种情况时,客户端在尝试在页面上加载静态脚本或样式标签时将开始收到 401.3“未授权”错误。它总是被拒绝的 .css 或 .js 文件,并且设置<modules runAllManagedModulesForAllRequests="false" />
并没有解决问题。当问题发生时,它会有效地阻止文件,直到重新启动应用程序池。
该站点正在使用带有库存“AspNetSqlMembershipProvider”的表单身份验证。该站点在 /Accounts 文件夹中具有受保护的文件,在 /Styles 中具有样式,在 /Scripts 中具有脚本。该站点启用了匿名访问,并且在 /Accounts 文件夹中有一个单独的 web.config,它拒绝匿名用户的访问(尽管这甚至与 runAllManagedModulesForAllRequests=false 无关)。
我查看了事件日志,发现:
2012-06-06 14:23:32 [ipaddress] GET /subfolder/Styles/Site.css ver=11 443 - [ipaddress] Mozilla/5.0+(Windows+ NT+6.1;+WOW64;+rv:12.0)+Gecko/20100101+Firefox/12.0 https://thesitename.net/subfolder/Account/Login.aspx 401 3 5 1493 429 62
有时在短时间内它会自行修复,或者如果我重新启动应用程序池,我会得到这个:
2012-06-06 14:30:30 [ipaddress] GET /subfolder/Styles/Site.css ver=11 443 - [ipaddress ] Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:12.0)+Gecko/20100101+Firefox/12.0 https://thesitename.net/subfolder/Account/Login.aspx 200 0 0 2533 455 78
我终于让托管服务提供商启用了失败的请求跟踪,并最终得到了错误的跟踪:
这次我得到的每个失败的请求跟踪文件都说失败发生在“FILE_CACHE_ACCESS_END”事件之后。此事件在做什么,为什么会拒绝访问?