![为什么我在 iis7 上的 MVC 和 ASP 网站上会出现随机 500 错误?](https://linux22.com/image/572133/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%9C%A8%20iis7%20%E4%B8%8A%E7%9A%84%20MVC%20%E5%92%8C%20ASP%20%E7%BD%91%E7%AB%99%E4%B8%8A%E4%BC%9A%E5%87%BA%E7%8E%B0%E9%9A%8F%E6%9C%BA%20500%20%E9%94%99%E8%AF%AF%EF%BC%9F.png)
这种情况似乎几乎发生在每个网站上,无论是 ASP 还是 .NET 网站。如果您在出现该错误后立即刷新,它就会消失,并且不会因为多次刷新而再次出现。我有两台服务器正在为 IIS 进行负载平衡。编辑这些也是文件夹名称的有效路径。这些页面连接到另一台服务器上的 Microsoft SQL 数据库。应用程序池设置为对所有 A 网站以及字母表中的其他每个字母使用不同的域用户,如 Microsoft 所指示的那样。每个网站都有自己的应用程序池。编辑
答案1
尝试“不”对服务器进行负载平衡,以查看其中一台服务器是否负责。
答案2
该错误还显示“错误代码 0x80070035”,Microsoft 网站上对此进行了详细说明:http://support.microsoft.com/kb/942031。
该错误的基本含义是“拒绝访问”,IIS 无法访问该文件夹,我首先要检查该文件夹的权限。您需要确保 IIS 至少对该文件夹及其中的文件具有读取权限。如果该网站使用脚本,您可能还希望允许对脚本具有执行权限。
答案3
我原来的答案被错误吞噬了,因此这里是简短的版本:
错误表明可能是权限问题,但这似乎是基于当时尝试执行的操作而做出的假设。连接性似乎是另一个可能的原因。
该错误来自静态文件处理程序,这意味着任何活动内容均未执行;请求尚未通过身份验证。因此,应用代码并未涉及此问题。
内容似乎位于 UNC 共享上。
“所有网站”都在同一台服务器上吗?
该问题真的影响“所有网站”还是仅影响“该文件服务器上的所有网站”?(这是同一件事吗?)
您能否本地移动一个或多个站点以查看是否能解决问题?
网络捕获看起来像可能如果它涵盖问题实例,则提供帮助。
如果有任何相关条目,应用程序事件日志可能也会有所帮助。
简而言之:可能是客户端(IIS)和文件服务器之间的关系并不总是很好;假设与 SMB 相关的尽职调查(MaxCmds 等)已经解决,那么查看与网络相关的问题似乎是正确的方法。