¿Cómo puedo obtener 404 para trabajar con Elmah y la HandleErrorAttribute escrito para Elmah en asp.net MVC?

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

Pregunta

He implementado Elmah en uno de mis proyectos ASP.NET MVC. Además hice lo siguiente:

  • He implementado el ElmahHandleErrorAttribute escrito por Atif Aziz en este después
  • He añadido el atributo a todos mis controladores
  • He fijado Elmah para filtrar los errores 404 ya que no desea registrar los
  • He añadido una vista Error.aspx en la carpeta compartida que deseo utilizar para todos mis errores.
  • Mis customErrors en el web.config se encienden y no he specifed cualquiera de las páginas de error en ella, ya que no debería tener que hacerlo.

En una de mis reguladores tengo el siguiente código:

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

Yo simplemente quieren mostrar un 404 si un registro no se puede encontrar en la base de datos. Por alguna razón mi página de Error.aspx no mostrará un error 404. En su lugar se muestra el asp.net genérico "el recurso no se puede encontrar" página. He intentado quitar la configuración del filtro 404 en Elmah pero eso no cambia nada.

La parte interesante es si cambio el error de NotFound decir InternalServerError la página muestra Error.aspx hasta muy bien.

¿alguien tiene alguna punteros de por qué esto es?

¿Fue útil?

Solución

No he utilizado Elmah más allá de crear una aplicación de ejemplo - pero tal vez debido a que un 404 no es error de aplicación? Si mi interpretación es correcta, un error 404 es empujado de nuevo a IIS que a su vez muestra el mensaje de error que está viendo. Además, creo que el web.coin

Si he entendido bien, es posible que desee modificar su enfoque y la acumulación uso de este lugar o establecer el Response.StatusCode a 404 (Echa un vistazo a la respuesta de Jeff en la cuestión vinculada)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top