Temos dois servidores da web executando o IIS 8.5 no Windows Server 2012 R2. Os dois servidores estão localizados atrás de um balanceador de carga.
Os servidores web estão executando um aplicativo ASP.NET MVC que, entre outros recursos, permite que os usuários acessem arquivos PDF. Esses arquivos PDF estão localizados em um terceiro servidor, um servidor de arquivos e disponibilizados aos dois servidores da Web por meio de diretórios virtuais. Em cada diretório virtual, temos vários subdiretórios.
No momento, estamos enfrentando problemas enormes ao acessar os arquivos PDF. O acesso continua funcionando por dias e dias e então, de repente, algo quebra e recebemos um erro 500.19 sempre que alguém tenta acessar um arquivo pdf.
Isso geralmente acontece em apenas um servidor web de cada vez e totalmente aleatoriamente. Sempre que os problemas ocorrem, a única coisa que ajuda é reciclar o pool de aplicativos. Até lá, os arquivos PDF não estão disponíveis.
Outro fato interessante é que, sempre que o acesso é interrompido, ele só é interrompido para determinados subdiretórios, enquanto outros ainda funcionam. No entanto, nem sempre é o mesmo subdiretório que para de funcionar, totalmente aleatório aqui também.
Eu dei uma olhada no log e é isso que eu recebo:
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]
Eu também tentei ativar o rastreamento de solicitação com falha, mas isso realmente não fornece mais informações do que o log do IIS.
Existe alguma maneira de descobrir por que o acesso aos arquivos pdf (que existem fisicamente, aliás - acesso do segundo servidor da Web quando a primeira falha ainda é possível) é interrompido aleatoriamente?