IIS 上的文件访问随机中断并返回 500.19 错误

IIS 上的文件访问随机中断并返回 500.19 错误

我们有两台在 Windows Server 2012 R2 上运行 IIS 8.5 的 Web 服务器。这两台服务器位于负载均衡器后面。

网络服务器正在运行 ASP.NET MVC 应用程序,该应用程序除其他功能外,还允许用户访问 PDF 文件。这些 PDF 文件位于第三台服务器(文件服务器)上,并通过虚拟目录提供给两台网络服务器。每个虚拟目录中都有多个子目录。

我们目前在访问 PDF 文件时遇到了大量问题。访问连续几天都正常,然后突然出现问题,每当有人尝试访问 PDF 文件时,我们都会收到 500.19 错误。
这种情况通常一次只发生在一个 Web 服务器上,而且完全是随机发生的。每当出现问题时,唯一有帮助的就是回收应用程序池。在此之前,PDF 文件不可用。

另一个有趣的事实是,每次访问中断时,只会中断某些子目录,而其他子目录仍可工作。但是,中断工作的子目录并不总是相同,这里也是完全随机的。

我看了一下日志,这就是我得到的:

2014-03-05 08:03:44 W3SVC2 [服务器名称] [服务器 IP] 获取 [PATH_TO_PDF] - 80 - [LOADBALANCER_IP] [用户代理] [COOKIE] - 500 19 6 0 [原始客户端 IP]

我也尝试激活失败请求跟踪,但它实际上并没有提供比 IIS 日志更多的信息。

有什么方法可以找出为什么对 pdf 文件的访问(顺便说一下,这些文件确实存在 - 当第一个 Web 服务器发生故障时仍然可以从第二个 Web 服务器进行访问)会随机中断?

答案1

感谢 Sam Gould 通过电子邮件直接联系我,我找到了答案。

  1. 单击服务器/机器级别的配置编辑器
  2. 在下拉列表中选择并展开 System.applicationHost
  3. 选择站点设置
  4. 点击“收藏”部分下的…按钮
  5. 选择相关网站并将 allowSubDirConfig 设置为 False
  6. 执行 IIS 重置

或者我们也可以尝试运行 appcmd 命令:
C:\Windows\System32\inetsrv> appcmd.exe set config -section:system.applicationHost/sites /[name='My_Website'].virtualDirectoryDe​​faults.allowSubDirConfig:"False" /commit:apphost

相关内容