在我的Global.asax文件中設置Application_Error事件處理程序,並且我已經實現了服務器傳輸錯誤。現在我想設置一個特定的頁面來處理404錯誤。如何檢測404錯誤並調用404特定的頁面?
該問題的主要答案涉及檢索首先觸發事件的異常。要做到這一點,我們調用Server.GetLastError():
我們下一步需要做的是確定是否異常是一個HttpException或別的東西。一旦我們確定它是一個HttpException,我們就可以訪問特定於Http的屬性和方法,這些屬性和方法會給我們提供我們正在尋找的其他信息。在我們的例子中,我們要調用GetHttpCode()方法,它將返回Http狀態碼並將其與404號碼進行比較。
空隙的Application_Error(對象發件人,EventArgs的)
{
Exception ex = Server.GetLastError();
if (ex is HttpException)
{
if (((HttpException)(ex)).GetHttpCode() == 404)
Server.Transfer("~/Error404.aspx");
}
// Code that runs when an unhandled error occurs
Server.Transfer("~/DefaultError.aspx");
}