Pergunta

Eu tenho instalado e configurado ELMAH para registrar todos os meus erros em um projeto ASP.NET MVC que estou trabalhando. Ele será usado por um pequeno grupo de usuários que não precisa saber muito por isso sempre que houver qualquer tipo de erro (404, InvalidOperation, Y2K ... qualquer coisa!) Eu só quero mostrar-lhes uma visão de erro padrão genérico com instruções para chamar nosso helpdesk e sentar-se apertado.

ELMAH está instalado e funcionando muito bem que nossa equipe helpdesk irá usar para diagnosticar erros e log / elevar os bilhetes conforme necessário. Meu problema é no sentido de obter a minha página de erro global para mostrar. Eu estou usando a solução postada aqui para garantir que ELMAH e [HandleError] jogo agradável juntos.

Web.config é configurado como assim:

<customErrors mode="On" />

Se eu acessar http: // application / Início Índice / que tem um erro de LINQ (Sequência não contém elementos) então eu estou mostrado o meu bom, vista erro genérico de /Shared/Error.aspx mas se eu tentar acessar http: / / application / Falso / quebrado que é um 404, então eu obter o costume ASP.NET

Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Fake/Broken

Ambos os erros são registrados perfeitamente por ELMAH embora.

Foi útil?

Solução

Se você está olhando apenas para mostrar uma página de erro genérica, em seguida, você pode especificar a própria página:

<customErrors mode="On" defaultRedirect="error.htm" />

que faria com que todas as exceções não tratadas, página não encontrados, etc para mostrar o seu "Error.htm". Você pode ser mais específico sobre os códigos de erro embora:

<customErrors mode="On">
  <error statusCode="404" redirect="notfound.htm"/>
</customErrors>

Outras dicas

Se você estiver usando o IIS 7 pode ser necessário adicionar este à sua

<system.webServer>

seção no arquivo de configuração

<httpErrors errorMode="Custom" existingResponse="PassThrough" />
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top