Como posso fazer com que o 404 funcione com Elmah e o HandleRorattribute escrito para Elmah no ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/4027433

Pergunta

Eu implementei Elmah em um dos meus projetos ASP.NET MVC. Além disso, fiz o seguinte:

  • Eu implementei o elmahhandleerrorattribute escrito por atif Aziz neste publicar
  • Eu adicionei o atributo a todos os meus controladores
  • Eu configurei o Elmah para filtrar 404 erros, pois não quero registrar aqueles
  • Adicionei uma visualização de erro.aspx na pasta compartilhada que desejo usar para todos os meus erros.
  • Meus todos os meterem relevantes do web.config estão ligados e eu não especifiquei nenhuma página de erro, como não deveria.

Em um dos meus controladores, tenho o seguinte código:

if (model == null)
            throw new HttpException((int)HttpStatusCode.NotFound, "Project not found");

Eu simplesmente quero exibir um 404 se um registro não puder ser encontrado no banco de dados. Por algum motivo, minha página de erro.aspx não será exibida para um erro 404. Em vez disso, exibe a página genérica do ASP.NET "O recurso não pode ser encontrado". Eu tentei remover a configuração do filtro 404 no Elmah, mas isso não muda nada.

A parte interessante é que, se eu alterar o erro de Notfound para dizer que a página do Error.aspx é muito boa.

Alguém tem alguma dica sobre por que isso é?

Foi útil?

Solução

Eu não usei o Elmah além de criar um aplicativo de amostra - mas talvez porque um 404 não seja um erro de aplicação? Se meu entendimento estiver correto, um erro 404 será pressionado para o IIS, que, por sua vez, exibe a mensagem de erro que você está vendo. Além disso, acredito que o web.coin

Se eu entendi corretamente, você pode querer alterar sua abordagem e construir use isso em vez de ou defina o Response.StatusCode para 404 (confira a resposta de Jeff na pergunta vinculada)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top