1. 程式人生 > >Web網站錯誤提示頁面和默認訪問頁面設置

Web網站錯誤提示頁面和默認訪問頁面設置

sco red tracking 優先 remote 記錄 sender code system

1、asp.net 定制簡單的錯誤處理頁面

通常web應用程序在公布後。為了給用戶一個友好界面和使用體驗,都會在發生錯誤時跳轉至一個自己定義的錯誤頁面,而不是asp.net向用戶暴露出來的具體的異常列表。
簡單的錯誤處理頁面能夠通過web.config來設置
<configuration>
  <system.web>
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
  <error statusCode="403" redirect="NoAccess.htm" />
  <error statusCode="404" redirect="FileNotFound.htm" />
  </customErrors>
</system.web>
</configuration>

mode說明:
On 指定啟用自己定義錯誤。假設未指定 defaultRedirect,用戶將看到一般性錯誤。



Off 指定禁用自己定義錯誤。

這同意顯示標準的具體錯誤。

RemoteOnly 指定僅向遠程client顯示自己定義錯誤而且向本地主機顯示 ASP.NET 錯誤。這是默認值。

默認值為 RemoteOnly。


假設想通過編程的方式來呈現錯誤原因,能夠通過Page_Error事件來做這件事.
還有一種方式則能夠通過Global.asax來實現。我認為這樣的方式較為方便。另外假設能結合一個單獨的更加友好的頁面,則看來起更舒服一些

Global.asax(假設須要。能夠記錄錯誤日誌)

 void Application_Error(object sender, EventArgs e) 
     {
         Exception objErr = Server.GetLastError().GetBaseException();
         string error = "發生異常頁: " + Request.Url.ToString() + "<br>";
         error += "異常信息: " + objErr.Message + "<br>";
         Server.ClearError();
         Application["error"] = error;
         Response.Redirect("~/ErrorPage/ErrorPage.aspx");
     }


再將錯誤信息顯示在ErrorPage.aspx頁面上,或者僅僅記錄日誌不做顯示。


2、asp.net 通過web.config設置網站默認訪問頁面優先級
設置靠前的優先級別越高
<system.webServer>
    <defaultDocument>
      <files>
        <clear/>
        <add value="default.aspx"/>
        <add value="index.htm"/>
        <add value="index.html"/>
        <add value="index.aspx"/>
        <add value="Default.htm"/>
        <add value="Default.asp"/>
        <add value="iisstart.htm"/>
      </files>
    </defaultDocument>
  </system.webServer>

Web網站錯誤提示頁面和默認訪問頁面設置