4

我正在为我们的一个客户开发一个网站,几周来一直有一个烦人的问题。该问题是间歇性的,可能一天发生两次或两周内发生一次。

发生这种情况时,客户端在尝试在页面上加载静态脚本或样式标签时将开始收到 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 44​​3 - [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 44​​3 - [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”事件之后。此事件在做什么,为什么会拒绝访问?

4

3 回答 3

1

编辑:

您可能应该尝试按照此处的“失败的请求跟踪”说明进行操作。该错误几乎可以肯定与 NTFS 权限有关。

看起来您在问题行中遇到了 Win32“找不到路径”错误(在3HTTP 状态代码之后,字段sc-win32-status)。

这些文件是否在网络共享上?看起来 Web 服务器和托管这些文件的驱动器之间可能存在一些连接问题。这可能是 IIS 用户在尝试读取这些文件时出现的授权错误,这可以解释 401 错误。

W3C 扩展日志文件格式 (IIS 6.0):http: //www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/676400bc-8969-4aa7-851a-9319490a9bbb.mspx?mfr=true

Win32 状态码在这里:http: //msdn.microsoft.com/en-us/library/ms681382.aspx

于 2012-06-11T21:06:31.867 回答
0

我会先在运行状况监控日志中查看该错误的原因(事件代码 3005:System.Data.Linq.ChangeConflictException)。如果您的问题在此错误之后开始出现,那么消除此错误很有可能会解决您的问题。

以下是一些讨论此错误的页面,可能有助于理解错误以及如何修复它:

http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/11/25/linq-to-sql-concurrency-changeconflictexception-row-not-found-or-changed.aspx

http://sebastienlachance.com/post/SystemDataLinqChangeConflictException-Row-not-found-or-changed.aspx

http://weblogs.asp.net/okloeten/archive/2008/04/28/6139181.aspx

于 2012-06-18T15:35:34.003 回答
0

我长期以来一直在努力解决这个错误。

此错误的一个奇怪原因是资源(文件或文件夹)位于共享(SMB 共享)中,对“每个人”的访问权限有限或没有访问权限。这会覆盖您可能专门添加到文件夹或文件的权限,并导致匿名访问出现 401.3 错误。

于 2013-06-07T14:32:09.483 回答