国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > IIS > 正文

IIS7.5下的web.config 404應該如何配置

2024-08-29 03:11:27
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了IIS7.5下的web.config 404應該如何配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。

IIS環境下web.config的配置的問題,在IIS7.5中添加配置404頁面時遇到了一些問題,記錄如下:

    一開始在<customError>下的<error>節點配置404不起作用,由于程序運行在IIS7.5集成模式下,經過MSDN和GOOGLE,發現需要在<system.webServer>節點中配置。

    我們知道<system.web>節點是iis7.0之前版本的主要配置節點,由于在II7.0以后IIS管道處理與ASP.NET管道處理進行了集成,這樣提高了ASP.NET的處理性能,具體這方面的資料請GOOGLE,問題隨之而來,新增加的

<system.webServer>節點中需要進行哪些修改以程序在IIS7的集成模式下能完全生效呢,主要包含以下幾個方面:

(1) <modules> -----相當于<system.web>中的<httpModules>

(2) <handlers> -----相當于<system.web>中的<httpHandlers>

(3) <customError>下的<error>----相當于<system.web>中的<httpErrors>

    以上三點中,如果你的程序中有自定義的httpModules或者httpHandlers的話,那么第一點和第二點非常重要,具體資料請MSDN明白了這些,配置也就不難了,如下:

<httpErrors errorMode="DetailedLocalOnly">

<remove statusCode="404"/>

<error statusCode="404" path="/404.htm" responseMode="ExecuteURL"/>

</httpErrors>

補充說明:

 errorMode有三個值,分別為Custom、DetailedLocalOnly、Detailed

意思為對用戶與服務器端始終顯示自定義頁面、只能服務器端顯示詳細出錯信息、對用戶與服務器端始終顯示詳細出錯信息。

responseMode有File、ExecuteUrl、Redirect三個層,

分別表示使用服務器端靜態文件、可執行的URL、URL轉向。

要注意:<httpErrors>與<customErrors>是不同的,前者主要用于處理http相關的錯誤信息,而后者主要是處理應用程序級的錯誤頁轉向

附<customErrors>的一些細節說明:

     同樣,如果Application_Error和<customerErrors>同時存在,也存在執行順序的問題。

    因為優先級Application_Error事件> <customErrors>配置項,所以發生應用程序級錯誤時,優先執行Application_Error事件中的代碼,如果Application_Error事件中調用了Server.ClearError()函數,

<customerErrors>配置節中的defaultRedirect不起作用,因為Exception已經被清除;

    如果Application_Error事件中沒用調用了Server.ClearError()函數,錯誤頁會重新定位到defaultRedict指定的URL頁面,為用戶顯示友好出錯信息。

    通過對.NET提供的以上四種錯誤處理機制的分析,我們可以把它們從不同的角度分類,便于我們理解和使用。

1.從功能上分類:

用于異常處理(Handling exceptions)是Page_Error事件和Application_Error事件;

用戶錯誤頁面重定向(Redirecting the user to an error page)的是 ErrorPage屬性 和 <customErrors>配置項。     

2.從錯誤處理的范圍分類:

用于頁面級(Page level)錯誤處理的是Page_Error事件 和 ErrorPage屬性;

用于應用程序級(Application level)錯誤處理的是Application_Error事件 和 <customErrors>配置項。



剛測試檢測,上面的設置有問題:

<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" />
<error statusCode="404" path="404.html" responseMode="File" />
</httpErrors>

正確的設置應該是這樣。下面是再IIS7.5里的操作截圖:


1、當選擇響應操作為:在此網站執行URL時。會造成設置了404頁面模板,表面看是對的,但實際上是錯誤的;因為訪問不存在的頁面返回的HTTP狀態碼仍然是200。 原因:因為操作執行的是一個URL,IIS服務器只是讀取了另外一個存在的URL而已,因為這個URL存在,所以返回的狀態碼是200。 如果網站剛好出現了很多404頁面,但是這時候狀態碼不對,會給網站造成很大危害。 設置了404頁面
2、當選擇響應操作為:文件路徑(絕對路徑)。雖然HTTP狀態碼是404,但是會造成IIS服務器讀取404頁面模板失敗,也就是說讀取不到預設好的404模板頁面。
設置404頁面






3、正確的設置方法是:

設置404頁面模板使用相對路徑

設置404頁面模板使用相對路徑

web.cofig里的參數設置如下:

<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" />
<error statusCode="404" path="404.html" responseMode="File" />
</httpErrors>


IIS7.5下的web.config 404應該如何配置


以上就是IIS7.5下的web.config 404應該如何配置的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂伦春自治旗| 武冈市| 龙南县| 东乌珠穆沁旗| 宜君县| 湖口县| 多伦县| 娄底市| 虞城县| 大洼县| 柳河县| 洛宁县| 郧西县| 荆州市| 阜新市| 清水河县| 即墨市| 方山县| 龙陵县| 光泽县| 静乐县| 安宁市| 江都市| 大足县| 卓资县| 滦南县| 桂林市| 沙雅县| 富阳市| 昌图县| 江西省| 右玉县| 图们市| 沂南县| 荣昌县| 三河市| 嘉禾县| 应用必备| 永新县| 瑞安市| 榆树市|