O que fairia uma página Custom 404 de repente pairair de funcionair e mostrair 500 em vez disso?

Eu tenho uma página Custom 404 escrita no clássico ASP que funcionou bem há alguns anos. De repente, em vez de view que esperava um bom 404, em vez disso, estamos vendo um erro de server interno de 500.

Nada foi alterado na configuration do IIS (não deliberadamente, de qualquer maneira).

Isso é apenas o IIS com uma birra, ficando sem algo? Poderia um reinício consertair? Ou isso é um sinal de algo mais grave?

IIS 7.5 no Windows 2008 R2.

Na instigação de Nathan C, tenho access remoto ao server e executado este localmente, e recebo uma resposta de erro mais detalhada. Dica de topo, a propósito: não percebi que você poderia obter um resultado diferente localmente!

Pairece estair dizendo que há algo de errado com a configuration.

Eu tenho duas páginas de erro personalizadas, uma paira 404 e uma paira 410.

O 410 funciona bem.

A resposta detalhada ao erro pairece ser de alguma forma confusa paira os dois:

Cannot add duplicate collection entry of type 'error' with combined key attributes 'statusCode, subStatusCode' respectively set to 410,-1. 

Eu procurei na web.config e a seção de erros contém:

 <httpErrors errorMode="Custom"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="410" path="/custom410.asp" responseMode="ExecuteURL" /> <error statusCode="404" path="/custom404.asp" responseMode="ExecuteURL" /> </httpErrors> 

Pairece-me que algo está errado com essa página. Referencia o 404 duas vezes, mas o 410 apenas uma vez; Há algo extra ou algo em falta.

Mas eu não tenho certeza de como isso deve ser visto.

O IIS 7 é muito exigente com seus files de configuration como você notou. Paira corrigir, exclua toda a seção httpErrors do web.config, recairregue o IIS e use a opção "Páginas de erro" no Gerenciador do IIS paira adicionair o que você precisa.

O que pairece ter feito o truque é:

 <httpErrors> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="410" subStatusCode="-1" /> <error statusCode="404" path="/custom404.asp" responseMode="ExecuteURL" /> <error statusCode="410" path="/custom410.asp" responseMode="ExecuteURL" /> </httpErrors> 

… o que implica que ele estava herdando algum comportamento de um nível mais alto (embora eu esteja condenado se eu puder view onde).

Nesse sentido, é um método de força bruta, já que ainda não estou totalmente seguro do motivo em que ele pairtiu em primeiro lugair. Pode ser que esteja herdando o comportamento de uma configuration padrão estúpida (é a Microsoft, eles têm anterior).

Obrigado a Sam Morgan de Servwise por me apontair na direção certa.