How can I tell if Request/Response is available in Application_Error?

If Application_Error is triggered by an exception in the application. RouteConfigor BundleConfig.

how can you check if the Request/Response is available?

Response.Clear throws System.Web.HttpException with additional information Response is not available in this context.

void Application_Error(object sender, EventArgs e)
{
    //Log error
    Log.Error(e);
    //Clear
    Response.Clear();
    Server.ClearError();
    //Redirect
    Response.Redirect("~/Error");
}

 

Last updated:6/1/2015 1:17:30 AM

1 Answers

Anonymous User
Anonymous User

You want to check whether it is HttpException.

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');
    }
}

Answer