8
votes

Peut app.useerrorhandler () accès aux détails d'erreur?

Dans mon application MVC4, j'ai eu un remplacement global.aSax.cs de Application_Error (expéditeur d'objet, evenargs e) où je pourrais extraire l'exception , Statut StatusCode et requierdurl (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 () . Suis-je en utilisant la bonne approche dans ASP.NET CORE?


0 commentaires

3 Réponses :


1
votes

à partir de votre action de traitement des erreurs configurée, vous pouvez faire quelque chose comme: xxx


5 commentaires

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 comme premier middleware dans le pipeline


varexe var = contexte.getfeature (); Il montre une valeur null dans la variable pourquoi?


iErrorhandlerFeature n'est pas reconnu dans mon projet. Où est-il situé?



14
votes

août. 02th 2016 - Mise à jour de 1.0.0

startup.cs xxx

homecontroller.cs xxx

projet.json xxx


8 commentaires

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 context et iErrorhandlerFature ne sont pas reconnus et Intillisense ne suggère aucun en utilisant déclaration à ajouter. Mon projet.json 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 ?


@aguafrommars Il ressemble à cette réponse est sorti daté. Si vous regardez votre HomeController , vous utilisez cette ligne dans celle-ci this.httpontext.features.get.get.get.get (); qui fonctionne pour moi après avoir ajouté à l'aide de Microsoft .Aspnet.diagnostiques; et à l'aide de microsoft.aspnet.http.features;


@Matthewverstrate oh oui, tu as raison, je vais mettre à jour ma réponse thx


Je devais inclure microsoft.aspnet.http.features en tant que package pour fonctionner correctement



4
votes

dans beta8, Agua de la réponse de Mars est un peu différent.

au lieu de: p> xxx pré>

Utilisation: p> xxx pré >

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");


0 commentaires