- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機(jī)構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機(jī)構(gòu):新網(wǎng)數(shù)碼
本文介紹一個(gè)關(guān)于IIS環(huán)境下web.config配置的經(jīng)驗(yàn)問題。在IIS7.5中添加配置404頁面時(shí)遇到了?些問題與解決方法,需要的朋友可以參考下
本文介紹一個(gè)關(guān)于IIS環(huán)境下web.config配置的經(jīng)驗(yàn)問題。在IIS7.5中添加配置404頁面時(shí)遇到了一些問題,記錄如下:
一開始在<customError>下的<error>節(jié)點(diǎn)配置404不起作用,由于程序運(yùn)行在IIS7.5集成模式下,經(jīng)過MSDN和GOOGLE,發(fā)現(xiàn)
需要在<system.webServer>節(jié)點(diǎn)中配置,我們知道<system.web>節(jié)點(diǎn)是iis7.0之前版本的主要配置節(jié)點(diǎn),由于在II7.0以后IIS管
道處理與ASP.NET管道處理進(jìn)行了集成,這樣提高了ASP.NET的處理性能,具體這方面的資料請GOOGLE,問題隨之而來,新增加的
<system.webServer>節(jié)點(diǎn)中需要進(jìn)行哪些修改以程序在IIS7的集成模式下能完全生效呢,主要包含以下幾個(gè)方:
(1) <modules> -----相當(dāng)于<system.web>中的<httpModules>
(2) <handlers> -----相當(dāng)于<system.web>中的<httpHandlers>
(3) <customError>下的<error>----相當(dāng)于<system.web>中的<httpErrors>
以上三點(diǎn)中,如果你的程序中有自定義的httpModules或者h(yuǎn)ttpHandlers的話,那么第一點(diǎn)和第二點(diǎn)非常重要,具體資料請MSDN
明白了這些,配置也就不難了,如下:
<httpErrors errorMode="DetailedLocalOnly"> <remove statusCode="404" /> <error statusCode="404" path="/404.htm" responseMode="ExecuteURL" /> </httpErrors>
補(bǔ)充說明:
errorMode有三個(gè)值,分別為Custom、DetailedLocalOnly、Detailed,意思為對用戶與服務(wù)器端始終顯示自定義頁面、
只能服務(wù)器端顯示詳細(xì)出錯(cuò)信息、對用戶與服務(wù)器端始終顯示詳細(xì)出錯(cuò)信息。
responseMode有File、ExecuteUrl、Redirect三個(gè)層,分別表示使用服務(wù)器端靜態(tài)文件、可執(zhí)行的URL、URL轉(zhuǎn)向。
要注意:<httpErrors>與<customErrors>?不同的,前者主要用于處理http相關(guān)的錯(cuò)誤信息,而后者主要是處理應(yīng)用程序級的錯(cuò)誤頁轉(zhuǎn)向
附<customErrors>的一些細(xì)節(jié)說明:
同樣,如果Application_Error和<customerErrors>同時(shí)存在,也存在執(zhí)行順序的問題。因?yàn)閮?yōu)先級Application_Error事件> <customErrors>配置項(xiàng),所以發(fā)生應(yīng)用程序級錯(cuò)誤時(shí),優(yōu)先執(zhí)行Application_Error事件中的代碼,如果Application_Error事件中調(diào)用了Server.ClearError()函數(shù),<customerErrors>配置節(jié)中的defaultRedirect不起作用,因?yàn)镋xception已經(jīng)被清除;如果Application_Error事件中沒用調(diào)用了Server.ClearError()函數(shù),錯(cuò)誤頁會重新定位到defaultRedict指定的URL頁面,為用戶顯示友好出錯(cuò)信息。
通過對.NET提供的以上四種錯(cuò)誤處理機(jī)制的分析,我們可以把它們從不同的角度分類,便于我們理解和使用。
1.從功能上分類:用于異常處理(Handling exceptions)是Page_Error事件和Application_Error事件;用戶錯(cuò)誤頁面重定向(Redirecting the user to an error page)的是 ErrorPage屬性 和 <customErrors>配置項(xiàng)。 2.從錯(cuò)誤處理的范圍分類:用于頁面級(Page level)錯(cuò)誤處理的是Page_Error事件 和 ErrorPage屬性;用于應(yīng)用程序級(Application level)錯(cuò)誤處理的是Application_Error事件 和 <customErrors>配置項(xiàng)。
希望本文能對使用IIS7.0及IIS7.5的朋友們有幫助:感謝您的支持!)
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP