參考KB306355: How to create custom error reporting pages in ASP.NET by using Visual C# .NET使用主頁的Web應用程序的ASP.NET自定義錯誤頁面
我瞭解如何創建自定義錯誤頁面。有很多如何做的例子,就像上面的鏈接一樣。
我找到的例子都沒有顯示如何做我以後的事情。
我有一個使用主頁的Web應用程序。
在我的母版頁,我已經使用了錯誤的一個Label控件,所有的頁面會看到:
<h4 id="bannerError"><asp:Label ID="lblError" runat="server" /></h4>
在後面的代碼對母版頁,我有這樣的:
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;
}
}
ErrorMessage
是一個屬性。我的其他頁面可以很容易地訪問它,並且我很容易編輯出有關將錯誤寫入服務器數據庫的部分。
的Web.config
頁面配置(片段):
<?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>
我將如何編輯我的文件,以便在任何我在我的應用頁面(從母版頁中獲得)中出現的任何錯誤,只是表明這個通過母版頁的基本信息,而不是將頁面重定向到另一個URL?
我知道這不是問題,但另一種方法是在'global.asax' Application_Error'方法中處理這個問題。 http://msdn.microsoft.com/en-us/library/24395wz3(v=vs.100).aspx –
謝謝@EladLachmi。我相信這就是我現在所做的。我正在尋找一種更加優雅的方法,它被包裹在我的主頁面中。 – jp2code
我們有一個非常大的網站,其中包含許多母版頁,並且我們發現記錄所有異常/重定向到錯誤頁面的唯一一致方式是針對在我們的應用程序中拋出的所有不同類型的異常。 –