Dans mon application MVC4, j'ai eu un remplacement global.aSax.cs de Application_Error (expéditeur d'objet, evenargs e) code> où je pourrais extraire l'exception code> code>,
Statut StatusCode code> et
requierdurl code> (pour la manipulation 404). Cela serait envoyé à mon contrôleur et que la page d'erreur serait différente pour les 404s VS 5xx (celles-ci obtiennent une trace de pile). Je ne vois pas comment obtenir cette même information à mon action d'erreur à l'aide de
utilserrorhandler () code>. Suis-je en utilisant la bonne approche dans ASP.NET CORE? P>
3 Réponses :
à partir de votre action de traitement des erreurs configurée, vous pouvez faire quelque chose comme:
J'ai besoin de gâcher cela quelque chose de plus mais à l'heure actuelle, je ne peux même pas obtenir d'utiliserRorrorhandler pour invoquer mon action. Soupir..
Moi aussi - ça n'invoque pas Action / Accueil / Erreur. J'ai app.usemvcwithdefaultroute (); app.usestaticfiles (); app.useruntimeInfopage (); app.useerrorhandler ("/ home / erreur"); Je peux ouvrir / accueil / erreur directement
@ChrishaRrington: vous devez enregistrer utilserrorhandler code> comme premier middleware dans le pipeline
varexe var = contexte.getfeature
iErrorhandlerFeature code> n'est pas reconnu dans mon projet. Où est-il situé?
startup.cs strong> p> homecontroller.cs strong> p> p> p> p> projet.json strong> p>
Merci. Cela fonctionne pour 500 erreurs de style. Mais malheureusement pas pour 404 erreurs. Je suppose que j'ai besoin d'un autre mécanisme pour gérer 404 erreurs.
Lisez-vous échantillons de diagnostic sur Github ? Je pense que le StatucCodeSample peut être de l'aide complète
Merci pour le lien. Encourager toujours mon chemin autour de tous les actifs .NET sur GitHub. :-)
@aguafrommars Je suis sur RC1 mais lorsque je copie le code de votre contrôleur dans la mine code> context code> et iErrorhandlerFature code> ne sont pas reconnus et Intillisense ne suggère aucun
en utilisant code> déclaration à ajouter. Mon
projet.json code> a la même dépendance que vous avez répertorie. Cette réponse n'est-elle plus valide ou y a-t-il quelque chose qui ne vous manque pas?
@MatthewverStrate, cette réponse doit être valide pour RC1, vous pouvez consulter mon échantillon sur Github Repo . Peut-être qu'il y a un autre problème dans votre code. Votre contrôleur est-il dérivé de contrôleur code>?
@aguafrommars Il ressemble à cette réponse est sorti daté. Si vous regardez votre HomeController CODE>, vous utilisez cette ligne dans celle-ci
this.httpontext.features.get.get.get.get
à l'aide de Microsoft .Aspnet.diagnostiques; code> et
à l'aide de microsoft.aspnet.http.features; code>
@Matthewverstrate oh oui, tu as raison, je vais mettre à jour ma réponse thx
Je devais inclure microsoft.aspnet.http.features code> en tant que package pour fonctionner correctement
dans beta8, Agua de la réponse de Mars est un peu différent.
au lieu de: p> Utilisation: p> Cela nécessite également une référence à Microsoft.aspnet.http.features et à la ligne suivante dans Configurer () dans Startup.cs: P> app.UseExceptionHandler("/Home/Error");