Сочетание того, что сказал NailItDown и Виктор. Предпочтительный / самый простой способ - использовать ваш Global.Asax для хранения ошибки, а затем перенаправить на свою страницу ошибки.
Global.asax
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
Exception ex = Server.GetLastError();
Application["TheException"] = ex; //store the error for later
Server.ClearError(); //clear the error so we can continue onwards
Response.Redirect("~/myErrorPage.aspx"); //direct user to error page
}
Кроме того, вам необходимо настроить web.config :
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="~/myErrorPage.aspx">
</customErrors>
</system.web>
И, наконец, делайте все, что вам нужно, за исключением того, что вы сохранили на своей странице error :
protected void Page_Load(object sender, EventArgs e)
{
// ... do stuff ...
//we caught an exception in our Global.asax, do stuff with it.
Exception caughtException = (Exception)Application["TheException"];
//... do stuff ...
}