Ich verwende Visual Studio 2012 mit dem MVC 4 Framework und möchte die Seite mit den fehlerhaften Fehlern des freigegebenen Ordners sehen, wenn eine Ausnahme nicht behandelt wird. (Ich weiß, als Entwickler muss ich die Fehlerdetails sehen, aber ich wollte nur diese Einstellung testen)
Bis jetzt weiß ich, dass das Hinzufügen des folgenden Codes im Abschnitt system.web von web.config den Trick
Leider bekomme ich anstelle meiner freundlichen Fehlerseite folgendes:
%Vor%Serverfehler in '/' Anwendung.
Runtime Error Beschreibung: Ein Anwendungsfehler trat bei der Server. Die aktuellen benutzerdefinierten Fehlereinstellungen für diese Anwendung verhindern Die Details des Anwendungsfehlers können nicht angezeigt werden.
Details: Um die Details dieser spezifischen Fehlermeldung zu aktivieren sichtbar auf dem lokalen Servercomputer, erstellen Sie bitte ein Tag in einer Konfigurationsdatei "web.config" im Stammverzeichnis Verzeichnis der aktuellen Webanwendung. Dieses Tag sollte dann sein Attribut "mode" auf "RemoteOnly" gesetzt haben. Ermöglichen die Details, die auf entfernten Rechnern angezeigt werden sollen, stellen Sie bitte "mode" auf "Aus".
%Vor%Hinweise: Die aktuelle Fehlerseite, die Sie sehen, kann durch a ersetzt werden benutzerdefinierte Fehlerseite durch Ändern des Attributs "defaultRedirect" des Konfigurations-Tag der Anwendung, um auf einen Benutzer zu verweisen Fehlerseite der Fehlerseite.
Ich möchte es wie beschrieben tun und nicht mit einer Problemumgehung wie dem Hinzufügen einer Aktion zu HomeController, Festlegen von Routen oder etwas.
Ein Hinweis, dass dies funktionieren sollte, ist folgender:
Ссылка
(Wählen Sie links das Kapitel "Aktionsfilter" und springen Sie zu Minute 3:30)
UPDATE (Link geändert):
Ссылка
(Klicken Sie oben auf die dünne Linie, auf der "Controller in ASP.NET MVC 4" steht, dann klicken Sie auf "Action Filters" und springen Sie zu Minute 5:00)
Hat jemand eine Ahnung, warum ich die freundliche Fehlerseite mit der oben genannten Einstellung nicht sehen kann?
Vielen Dank im Voraus!
Hier ist eine Schritt für Schritt Anleitung,
Stellen Sie zunächst die Eigenschaft mode des "customErrors" auf "on". (Dies gibt an, dass benutzerdefinierte Fehler aktiviert sind.)
1. Code aus Web.config
%Vor%Unten ist mein Controller-Code, ich habe das HandleError-Attribut für die Controller-Klasse angegeben. Um einen Fehler zu erzeugen, werfe ich eine Ausnahme aus der Index-Aktion.
2. Code von HomeController.cs
%Vor%Wie Sie im folgenden Screenshot sehen können, habe ich eine Error.cshtml-Ansicht im Ordner Shared des Views-Ordners definiert.
3. Projektmappen-Explorer
Beachten Sie, dass die Error.cshtml-Ansicht (siehe unten) ein Modell von 'System.Web.Mvc.HandleErrorInfo'
verwendet4. Code von Error.cshtml
%Vor%Beim Ausführen des Projekts erhalte ich jetzt, anstatt den gelben Todschirm zu erhalten, die folgende Ausgabe.
Aus diesem Artikel
Aktualisierung:
Probieren Sie es aus, indem Sie ein neues Projekt erstellen, das sollte und funktioniert. Ich vermute, dass Ihre Error.cshtml
-Datei möglicherweise kein Modell als @model System.Web.Mvc.HandleErrorInfo
hat oder Sie mehrere Error.cshtml-Seiten in verschiedenen Ansichtsordnern haben.
Ich habe meinen Fehler behoben. Tatsächlich kann die Seite * _Layout * nicht gerendert werden, weil mein _Layout.cshtml
stark in ein Basisansichtsmodell eingegeben wurde, in das HandleErrorInfo
nicht eingefügt werden kann. Und Sie können diesen Seitenbindungsfehler nie sehen, da dies nur passiert, wenn customError
aktiviert ist ... das ist einfach großartig.
Ein Grund, der zu dem führen könnte, was Sie erleben:
Etwas in Ihrem _layout verursacht eine Ausnahme, wenn das 'Error.cshtml' rendern wird.
Führen Sie einen Test durch, indem Sie
hinzufügen %Vor%in Ihrer 'Error.cshtml' Datei.
Dies funktioniert nicht mit Visual Studio Express Edition. Es funktioniert, wenn Sie Professional oder Ultimate Edition von Visual Studio IDE verwenden.
Tags und Links asp.net-mvc web-config asp.net-mvc-4 error-handling