ASP.net-空白頁的問題


protected
  void  Application_Error( object  sender,  EventArgs  e)
        {
             ILog  log =  LogManager  .GetLogger( typeof (  MvcApplication ));
             Exception  objErr = Server.GetLastError().GetBaseException();
             if  (objErr.ToString().IndexOf( "favicon.ico"  )==-1)
            log.Error(objErr);
             Server.ClearError();
        }
 
本示例在應用程序統一記錄錯誤日誌, 可從事件查看器訪問應用程序日誌。
但在記錄 錯誤 以後, Server.ClearError(); 」 在這種狀況下該頁就爲  空白頁面
應該直接跳轉, 重定向到另外一個更用戶友好的 錯誤 頁或者根據須要執行一些其餘操做。
 

如何使用 Web.config 文件
若是您不調用 Server.ClearError 或者捕獲 Page_Error 或 Application_Error 事件中的錯誤,則將根據 Web.config 文件的 <customErrors> 部分中的設置處理錯誤。在 <customErrors> 部分,可將重定向頁指定爲默認的錯誤頁 (defaultRedirect) 或者根據引起的 HTTP 錯誤代碼指定特定頁。您可以使用此方法自定義用戶收到的錯誤信息。服務器

若是發生在應用程序之前的任一級別都未捕獲到的錯誤,則顯示這個自定義頁。本節演示如何修改 Global.asax 文件,以便從不調用 Server.ClearError。所以,錯誤在做爲捕獲錯誤的最後一點的 Web.config 文件中進行處理。 1. 從上一個示例中打開 Global.asax 文件。 
2. 將 Server.ClearError 行註釋掉,以便確保錯誤出如今 Web.config 文件中。 
3. 將所做更改保存到 Global.asax 中。代碼看起來應相似以下形式: 
using System.Diagnostics;spa

protected void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
string err = "Error Caught in Application_Error event/n" +
"Error in:" + Request.Url.ToString() +
"/nError Message:"+ objErr.Message.ToString() + 
"/nStack Trace:"+ objErr.StackTrace.ToString();
EventLog.WriteEntry("Sample_WebApp",err,EventLogEntryType.Error);
//Server.ClearError();
//additional actions...日誌

}
 
將如下代碼添加到 <customErrors> 部分,以便將用戶重定向到自定義頁: 
<customErrors defaultRedirect="errorStatus.htm" mode="On">
</customErrors>
備註:必須修改 defaultRedirect 屬性中的文件路徑,以便它引用相關的 Web 服務器和應用程序名稱。 
相關文章
相關標籤/搜索