O que faria uma página 404 Personalizada parar de funcionar e mostrar 500 em vez disso?

1

Eu tenho uma página 404 personalizada escrita em ASP clássico que funcionou bem por alguns anos. De repente, em vez de ver, ele esperava um bom 404, em vez disso, estamos vendo um erro de servidor interno de 500.

Não há nada alterado na configuração do IIS (nem deliberadamente, de qualquer forma).

Isso é apenas IIS tendo uma birra, ficando sem algo? Pode uma reinicialização corrigi-lo? Ou isso é um sinal de algo mais sério?

IIS 7.5 no Windows 2008 R2.

Por instigação de Nathan C, tenho uma área de trabalho remota para o servidor e executo isso localmente, e recebo uma resposta de erro mais detalhada. Dica principal, a propósito: não percebi que você poderia obter um resultado diferente localmente!

Parece estar dizendo que há algo errado com a configuração.

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

O 410 funciona bem.

A resposta de erro detalhada parece confundir os dois:

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

Eu procurei no 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>

Parece-me que algo está errado nessa página. Refere o 404 duas vezes mas o 410 somente uma vez; há algo extra ou algo faltando.

Mas não tenho certeza de como isso significa .

    
por Marc Wilson 28.02.2014 / 13:56

2 respostas

1

O IIS 7 é muito exigente com seus arquivos de configuração, como você percebeu. Para corrigir, exclua toda a seção httpErrors do web.config, recarregue o IIS e use a opção "Páginas de erro" no Gerenciador do IIS para adicionar o que você precisa.

    
por 28.02.2014 / 14:34
0

O que parece 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 superior (embora eu seja condenado se eu puder ver onde).

Nesse sentido, é um pouco um método de força bruta, como eu ainda não estou totalmente certo da razão pela qual ele quebrou em primeiro lugar. Pode ser que ele esteja herdando o comportamento de uma configuração estúpida padrão (é a Microsoft; eles têm anterior).

Obrigado a Sam Morgan, da Servwise, por me apontar na direção certa.

    
por 01.03.2014 / 11:55