Quelles sont les meilleures pratiques pour global d'erreur/exception dans ASP.NET MVC?
J'ai vu deux méthodes de mise en œuvre globale de la gestion des erreurs dans un ASP.NET MVC 3 application. Une méthode est par l'intermédiaire de la Application_Error
méthode dans Global.asax.cs
.
Par exemple (Erreur de Manipulation mondiale.asax):
public class SomeWebApplication : System.Web.HttpApplication {
//... other methods ...
protected void Application_Error() {
//... application error handling code ...
}
}
L'autre méthode est par l'intermédiaire d'un [HandleError]
action du filtre d'attribut inscrit dans le RegisterGlobalFilters
méthode, encore une fois dans Global.asax.cs
.
Qui est la meilleure façon d'aborder cette question? Existe-il des inconvénients significatifs pour l'un et l'autre?
OriginalL'auteur dan | 2011-09-22
Vous devez vous connecter pour publier un commentaire.
[HandleError]
est le chemin à parcourir, car il garde tout ce simple et la responsabilité est claire. Cette l'action du filtre est un ASP.NET MVC fonction et, par conséquent, est le moyen officiel d'erreurs de manipulation. Il est également très facile de remplacer le filtre à ajouter des fonctionnalités personnalisées.Application_Error
est l'ancienne façon de faire, et qui n'appartient pas vraiment à la MVC.La
[HandleError]
attribut fonctionne très bien tant que vous n'oubliez pas de marquer vos contrôleurs (ou le contrôleur de base).Mise à jour:
Créé une entrée de blog: http://blog.gauffin.org/2011/11/how-to-handle-errors-in-asp-net-mvc/
une erreur de contrôleur et d'utiliser la valeur par défaut
<customErrors>
section dans le web.config.dans le web.config et un contrôleur d'erreur.
customErrors redirection qui n'est pas assez bien, savoir comment modifier l'affichage et le congé de code d'état 404?
customErrors dans le web.config (defaultRedirect) poignées non-404 exceptions à l'extérieur de la MVC du pipeline. Qu'en AJAX erreurs? Sélective Résultat retourné basé sur le type de demande?
OriginalL'auteur jgauffin