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>配置項。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971605/viewspace-2693464/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 配置nginx解決vue路由history模式下重新整理404問題NginxVue路由模式
- 介面詭異的404問題記錄
- laravel 路由404問題Laravel路由
- windows系統配置nginx環境執行pbootcms訪問首頁直接404的問題WindowsNginxboot
- nginx配置 vue打包後的專案 解決重新整理頁面404問題|nginx配置多端訪問NginxVue
- idea 訪問 jsp 404問題IdeaJS
- 配置pycharm 編譯器時遇到的一些問題PyCharm編譯
- Laraval 配置 微信服務端遇到的一些問題服務端
- 解決Vue cli3 history模式下打包出現的404問題Vue模式
- IIS7.5安全配置研究
- 有關laravel 上傳圖片訪問404的問題Laravel
- hive的一些問題Hive
- Vue 路由 history 模式踩坑記錄:nginx 配置解決 404 問題Vue路由模式Nginx
- 記錄一次 Nginx 配置 proxy_pass 後 返回404問題Nginx
- iis7.5錯誤 配置錯誤
- [解決方案]IIS配置後報錯404,500,502等系列問題
- centos下配置nginx遇到的一些基本的坑CentOSNginx
- Laravel 在 Docker 環境下訪問 storage 靜態資源 404 問題解決LaravelDocker
- 記錄redis的一些問題Redis
- 整理的一些常見問題
- 小程式遇到的一些問題
- WKWebView的一些問題彙總WebView
- 關於Redis的一些小問題Redis
- JavaScript 中的一些奇怪問題JavaScript
- vuejs整合echarts的一些問題VueJSEcharts
- GO web程式代理繫結域名非常頻繁404的問題GoWeb
- Python Requests庫文件連結404問題解決及防止重複問題的建議Python
- webpack中babel的配置問題WebBabel
- Hodoop配置中遇到的問題OdooOOP
- Horizon 配置守護程式 Supervisor 中遇到的一些問題 (AWS\Sqs\SqsClient not found)client
- 解決SpringBoot頁面localhost 404問題,即Whitelabel Error Page問題Spring BootlocalhostError
- Deployer 使用過程的一些問題
- VisualStudio遇到的一些初級問題
- 面試中遇到的一些問題面試
- EditText選擇模式的一些問題模式
- 基環樹的一些基本問題
- git的一些常用操作和問題Git
- Python的Selenium一些問題解決Python