Frage

Ich habe eingerichtet und konfiguriert ELMAH alle meine Fehler auf einer ASP.NET MVC-Projekt anmelden ich arbeite. Es wird von einer kleinen Gruppe von Benutzern verwendet werden, die nicht brauchen zu viel so zu wissen, wann immer es jeder Art von Fehlern (404, InvalidOperation, Y2K ... alles!) Ich will nur zeigen sie eine generische Standard-Fehleransicht mit Anweisungen unser Helpdesk anrufen und sitzen fest.

ELMAH ist und läuft gut, die unsere Helpdesk-Mitarbeiter Fehler zu diagnostizieren verwenden und log / erhöhen die Karten wie nötig. Mein Problem ist meine globale Fehlerseite in immer zu zeigen. Ich bin mit der Lösung geschrieben hier um sicherzustellen, dass ELMAH und [Handle] schön zusammen spielen.

Web.config eingerichtet ist wie so:

<customErrors mode="On" />

Wenn ich auf http: // application / Home / Index die eine LINQ Fehler hat (Sequenz enthält keine ich meine schöne, allgemeine Fehler Ansicht von /Shared/Error.aspx gezeigt dann Elemente), aber wenn ich versuche, http: / / application / gefälschter / Gebrochene , die ein 404 dann ist ich die üblichen ASP.NET

erhalten
Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Fake/Broken

Beide Fehler geloggt perfekt durch ELMAH though.

War es hilfreich?

Lösung

Wenn Sie nur eine generische Fehlerseite zu zeigen suchen, dann könnten Sie die Seite angeben selbst:

<customErrors mode="On" defaultRedirect="error.htm" />

Das würde dazu führen, alle nicht behandelten Ausnahmen Seite nicht Funden, usw. Ihr „error.htm“ zu zeigen. Sie können präziser zu dem Fehlercodes sein, obwohl:

<customErrors mode="On">
  <error statusCode="404" redirect="notfound.htm"/>
</customErrors>

Andere Tipps

Wenn Sie 7 iis verwenden Sie könnte dies hinzufügen müssen, um Ihre

<system.webServer>

Abschnitt in der Konfigurationsdatei

<httpErrors errorMode="Custom" existingResponse="PassThrough" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top