Ich verwende benutzerdefinierte ASP.NET-Fehlerseite in meiner Anwendung. Im Folgenden finden Sie die Datei web.config Eintrag für Custom TagServer.ClearError() mit Seitenaktualisierung
<customErrors mode="On" defaultRedirect="Error.aspx" redirectMode="ResponseRewrite" />
Es folgt der Code-Snippet auf Error.aspx Seite
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
Exception ex = Server.GetLastError();
if(ex != null)
{
CommonUtils.SendException(ex.Message.ToString(), ex.StackTrace.ToString());
Server.ClearError();
}
}
}
Wenn "ex" nicht null ist, Code wird die Ausnahme E-Mail senden. Das funktioniert gut.
Nach dem Senden der E-Mail möchte ich alle Fehler löschen, so dass keine E-Mail gesendet wird, wenn Benutzer die Schaltfläche zum Aktualisieren drücken. Aber selbst nach der Verwendung von Server.ClearError gibt es einen Rückgabewert von Server.GetLastError() Wenn die Seite zurückgesendet wird.
Warum behalten Sie dies in der 'ApplicationError()' Methode von Global.asax und verwenden Sie server.transfer(), um zur Fehlerseite zu navigieren – Webruster