【发布时间】:2012-06-10 23:03:18
【问题描述】:
我正在为我们的一个客户开发一个网站,几周来一直有一个烦人的问题。该问题是间歇性的,可能一天发生两次或两周内发生一次。
当这种情况发生时,客户端在尝试在页面上加载静态脚本或样式标签时将开始收到 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)+壁虎/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)+壁虎/20100101+Firefox/12.0 https://thesitename.net/subfolder/Account/Login.aspx 200 0 0 2533 455 78
我终于让托管服务提供商启用了失败的请求跟踪,并最终得到了错误的跟踪:
我这次得到的每个失败的请求跟踪文件都说失败发生在“FILE_CACHE_ACCESS_END”事件之后。这个事件在做什么?为什么会拒绝访问?
【问题讨论】:
-
您能否从日志中添加一个示例行来指示这些错误之一?
-
克里斯,我从 IIS 日志中添加了两行。一种是当问题发生时,然后第二行显示应用程序池重新启动后的响应。
标签: asp.net web-config forms-authentication http-status-code-401 http-status-code-302