O acesso a arquivos quebra aleatoriamente retornando 500.19 erros no IIS

2

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?

    
por Davide De Santis 05.03.2014 / 10:16

1 resposta

0

A resposta foi encontrada graças a Sam Gould, que me contatou diretamente por e-mail.

  1. Click on the Configuration Editor at the Server / Machine level
  2. Select on the Dropdown List and expand the System.applicationHost
  3. select the sites setting
  4. Click on the … button under the Collections section
  5. Select the concerned website and make the allowSubDirConfig to False
  6. Perform IIS Reset

Alternatively We can also try running the appcmd command:
C:\Windows\System32\inetsrv> appcmd.exe set config -section:system.applicationHost/sites /[name='My_Website'].virtualDirectoryDefaults.allowSubDirConfig:"False" /commit:apphost

    
por 08.02.2016 / 06:49