1. 程式人生 > >asp.net自定義錯誤資訊處理

asp.net自定義錯誤資訊處理

customErrors

  • Asp.Net級別的錯誤處理程式,只處理Asp.Net應用丟擲的異常(404,403,500。。)
  • 在IIS7+的伺服器依然可用(IIS7之前就引進了)
  • 靜態檔案(如.jpg.htm.js等)不會被處理
  • 放在System.Web節點

httpErrors

  • IIS級別的錯誤資訊處理程式,IIS根據請求指定錯誤頁面
  • 自IIS7引進
  • 處理包括ASP.NET應用及ASP.NET之外的應用(ASP.NET能管的 它會管,ASP.NET不能管得它也管)
  • 所有的檔案和URL都處理
  • 放在System.WebServer節點

從對比中能看出 在IIS7之後  就沒必要再用customErrors了,一切httpErrors都可以辦了。

複製程式碼
<httpErrors errorMode="Custom" existingResponse="Replace">
    <remove statusCode="403" subStatusCode="-1" />
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="403" prefixLanguageFilePath="" path="/403.png" responseMode="ExecuteURL" />
    <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" /> 
</httpErrors>
複製程式碼             

<system.web>
<customErrors mode="On" defaultRedirect="Error.html">
<error statusCode="403" redirect="/Error403" />
<error statusCode="404" redirect="/Error404" />
<error statusCode="500" redirect="/Error500" />
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" >
<remove statusCode="403"/>
<remove statusCode="404"/>
<remove statusCode="500"/>
<error statusCode="403" responseMode="ExecuteURL" path="/Error403" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error404" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error500" />
</httpErrors>
</system.webServer>