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

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

Web服务器正在运行一个ASP.NET MVC应用程序,除了其他function外,还允许用户访问PDF文件。 这些PDF文件位于第三个服务器,一个文件服务器上,并通过虚拟目录提供给两个Web服务器。 在每个虚拟目录中,我们有几个子目录。

我们目前遇到访问PDF文件的大量问题。 访问保持数天和数天的工作,然后,突然之间,一些中断,我们得到一个500.19错误,每当有人试图访问一个PDF文件。
这通常发生在一个Web服务器上,而且是完全随机的。 只要发生问题,唯一有用的就是回收应用程序池。 在此之前,PDF文件不可用。

另一个有趣的事实是,每当访问中断,它只会打破某些子目录,而其他人仍然工作。 但是,这并不总是相同的子目录停止工作,在这里也是完全随机的。

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

2014-03-05 08:03:44 W3SVC2 [SERVER_NAME] [SERVER_IP] GET [PATH_TO_PDF] – 80 – [LOADBALANCER_IP] [USER_AGENT] [COOKIE] – 500 19 6 0 [ORIGINAL_CLIENT_IP]

我也尝试激活失败的请求跟踪,但是这并不能提供比IIS日志更多的信息。

有没有办法找出为什么访问pdf文件(物理存在,顺便说一句,当第一个失败的情况下,从第二个Web服务器访问仍然可能)随机rest?

答案是Sam Gould,他通过电子邮件直接与我联系。

  1. 点击服务器/机器级别的configuration编辑器
  2. 在下拉列表中select并展开System.applicationHost
  3. select网站设置
  4. 单击“集合”部分下的…button
  5. select有关网站,并将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