Comment puis-je obtenir 404 à travailler avec Elmah et HandleErrorAttribute écrit pour Elmah en asp.net mvc?

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

Question

Je l'ai mis en œuvre dans Elmah un de mes projets ASP.NET MVC. De plus, je l'ai fait ce qui suit:

  • Je mis à exécution les ElmahHandleErrorAttribute écrit par Atif Aziz dans cette après
  • Je l'attribut ajouté à tous mes contrôleurs
  • J'ai installé Elmah pour filtrer les erreurs 404 depuis que je ne veux pas vous connecter les
  • J'ajouté une vue Error.aspx dans le dossier partagé que je souhaite utiliser pour toutes mes erreurs.
  • Mes customErrors dans le web.config sont activés et j'ai des pages non spécifié d'erreur dans ce que je ne devrais pas.

Dans un de mes contrôleurs je le code suivant:

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

Je veux simplement afficher une 404 si un enregistrement ne peut être trouvé dans la base de données. Pour une raison quelconque ma page Error.aspx n'affichera une erreur 404. Au contraire, il affiche le asp.net générique « la ressource ne peut être trouvée » page. J'ai essayé de supprimer la configuration 404 du filtre dans Elmah mais cela ne change rien.

La partie intéressante est si je change l'erreur de NotFound dire InternalServerError la page error.aspx apparaît très bien.

Est-ce que quelqu'un a des pointeurs pour expliquer pourquoi cela est?

Était-ce utile?

La solution

Je ne l'ai pas utilisé Elmah au-delà de la création d'un exemple d'application - mais peut-être parce qu'une 404 n'est pas erreur d'application? Si je comprends bien, une erreur 404 est poussé en arrière à IIS qui affiche à son tour le message d'erreur que vous voyez. En outre, je crois que le web.coin

Si je comprends bien, vous voudrez peut-être modifier votre approche et construire l'utilisation de cette lieu ou définir la Response.StatusCode à 404 (Voir la réponse de Jeff dans la question liée)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top