Referenz verwendet KB306355: How to create custom error reporting pages in ASP.NET by using Visual C# .NETASP.NET benutzerdefinierte Fehlerseite für Web App, die eine Master-Seite
Ich verstehe, wie eine benutzerdefinierte Fehler-Seite zu erstellen. Es gibt viele Beispiele dafür, wie im obigen Link.
Keines der Beispiele, die ich gefunden habe, zeigt, wie man macht, wonach ich suche.
Ich habe eine Webanwendung, die eine Masterseite verwendet.
In meiner Master-Seite, ich habe ein Kontrollschild für Fehler verwendet, die alle Seiten sehen:
<h4 id="bannerError"><asp:Label ID="lblError" runat="server" /></h4>
In der Code-behind an dieser Master-Seite, ich habe dies:
public void Page_Error(object sender, EventArgs e) {
var err = Server.GetLastError().GetBaseException();
ErrorMessage = String.Format("URL {0}: {1} Error: {2}", Request.Url, err.GetType(), err.Message);
Server.ClearError();
}
public string ErrorMessage {
get { return lblError.Text; }
set {
LogError(value);
lblError.Text = value;
}
}
Die ErrorMessage
ist eine Eigenschaft. Meine anderen Seiten können leicht darauf zugreifen, und ich war in der Lage, den Teil über das Schreiben des Fehlers in die Datenbank unseres Servers leicht zu bearbeiten.
Die Web.config
Seite Konfiguration (Snippet):
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<customErrors defaultRedirect="Default.aspx" mode="On">
<error statusCode="403" redirect="Default.aspx" />
<error statusCode="404" redirect="Default.aspx" />
</customErrors>
</system.web>
</configuration>
Wie würde ich meine Dateien bearbeiten, so dass Fehler, die auf jedem meiner Seiten in meiner Anwendung auftreten (die von Master-Seite ableiten), einfach, dies zeigen grundlegende Informationen über die Masterseite, anstatt die Seite auf eine andere URL umzuleiten?
Ich weiß, das war nicht die Frage, aber eine Alternative wäre, dies in der 'global.asax'' Application_Error' Methode zu behandeln. http://msdn.microsoft.com/en-us/library/24395wz3(v=vs.100).aspx –
Danke @EladLachmi. Ich glaube, das mache ich jetzt. Ich war auf der Suche nach einer eleganteren Herangehensweise, die in meiner Master Page eingepackt ist. – jp2code
Wir haben eine sehr große Site mit vielen Masterseiten und der einzige konsistente Weg, den wir gefunden haben, alle Ausnahmen zu protokollieren/auf Fehlerseiten umzuleiten, ist für alle Arten von Exceptions, die in unserer Anwendung geworfen werden. –