2012-04-02 5 views
3

Ich baue ASP.NET MVC3-Anwendung und zusätzlich zu den Standard-MVC-Ausnahmebehandlung Mechanismus Ich möchte eine statische HTML-Fehlerseite zeigen, wenn etwas in Application_Start schief gelaufen ist und eine unbehandelte Ausnahme geworfen wird Dort.Application_Start Ausnahmen Handhabung in IIS7-Umgebung

Ich habe gerade

hinzugefügt
<customErrors mode="On" defaultRedirect="Error.htm"> 

und erwartete Umleitung auf Error.htm in allen "Fehler" Fälle. Es funktioniert ordnungsgemäß mit Visual Studio Development Server, funktioniert aber überhaupt nicht mit IIS7 (Ich sehe den gelben Standardbildschirm mit "So aktivieren Sie die Details dieser spezifischen Fehlermeldung angezeigt werden auf ..."). Es scheint, dass, wenn Ausnahme in Application_Start geworfen wird, ASP.NET zu Error.htm umleitet und in diesem Moment IIS die Methode Application_Start erneut aufruft, wo die gleiche Ausnahme erneut aaaund welcome in die Endlosschleife auslöst.

Was sind die Optionen, um dieses Problem zu lösen? Kann es ohne Änderung der IIS-Einstellungen gemacht werden? Wenn nicht, wie sollte es auf der IIS-Seite richtig gemacht werden?

Antwort

-1

Besser spät als nie. Dies ist der normale Weg der Umgang mit Fehlern:

Testproject \ Views \ Shared \ Error.cshtml

@model System.Web.Mvc.HandleErrorInfo 
@{ 
    ViewBag.Title = "Error"; 
} 
<p>an error occurred</p><br /> 
<p>Try again.Go on this <a href="javascript:history.go(-1)">link</a></p> 

Testproject \ Controllers \ TestController.cs

namespace testproject.Controllers 
{ 
    [HandleError] 
    public class TestController : Controller 
    {} 
} 

Testproject \ Web.config

<system.web> 
    <customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml" /> 
</system.web>