2015-01-22 4 views
5

Wenn Application_Error durch eine Ausnahme in der Anwendung gestartet Start, d. H. RouteConfig oder BundleConfig Wie können Sie überprüfen, ob die Request/Response verfügbar ist? Derzeit ruft der Anruf Response.ClearSystem.Web.HttpException mit zusätzlichen Informationen Response is not available in this context.Wie kann ich feststellen, ob Request/Response in Application_Error verfügbar ist?

void Application_Error(object sender, EventArgs e) 
{ 
    //Log error 
    Log.Error(e); 

    //Clear 
    Response.Clear(); 
    Server.ClearError(); 

    //Redirect 
    Response.Redirect("~/Error"); 
} 

Andere Fragen empfehlen Umschreiben nicht Response verwenden oder IIS configHttpContext.Current.Response oder Wechsel zu verwenden.

Zusammenfassend; Wie kann ich feststellen, ob der Fehler beim Start der App aufgetreten ist?

Antwort

4

Sie möchten überprüfen, ob es HttpException ist.

protected void Application_Error(Object sender, EventArgs e) 
{ 
    var exception = Server.GetLastError(); 

    // Log error 
    LogException(exception); 

    var httpException = exception as HttpException; 
    if (httpException != null) 
    { 
     Response.Clear(); 
     Server.ClearError(); 
     Response.TrySkipIisCustomErrors = true; 

     Response.Redirect("~/Error"); 
    } 
} 
+0

Also wird jede Ausnahme, die während einer Anfrage ausgelöst wird, zu einer 'HttpException' führen? –

+0

@RDay Nein wird es nicht. Diese Antwort ist nicht hilfreich. – marsze

Verwandte Themen