Asp.net-Mvc
ASP.NET MVC 404 處理和 IIS7 <httpErrors>
再會!
我使用策略來處理這樣的 404 錯誤:ASP.NET MVC 2 和 IIS 7.0 的錯誤處理或這個:如何在 ASP.NET MVC 中正確處理 404?
簡而言之:我在
Global.asax不添加任何路由規則的情況下將 404 作為異常處理,如果異常是 404,我會呈現帶有錯誤消息的特殊控制器\操作。在 IIS6 上,它使用 ASP.NET 萬用字元映射。在集成模式下的 IIS7 上,我需要將以下內容添加到
Web.config(/error/HttpError404我的 404 頁面操作在哪裡):<httpErrors> <remove statusCode="403" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="/error/HttpError404" responseMode="ExecuteURL" /> <error statusCode="403" prefixLanguageFilePath="" path="/error/HttpError403" responseMode="ExecuteURL" /> </httpErrors>為什麼?路由在 IIS 集成模式和 IIS6 萬用字元映射上的工作方式不同?
提前致謝!
更新: 根據我的測試,似乎我的錯誤處理有效並且我的 404 操作被渲染,但似乎 IIS 看到 404 響應程式碼(我在我的 404 操作中以程式方式設置)並用預設錯誤替換我的頁面。
當我設置時,
<httpErrors>我得到了兩次 404 頁面的命中:一個來自異常處理Global.asax,另一個來自 IIS。這可能是原因嗎?
看來我已經通過設置來修復它
Web.config:<httpErrors existingResponse="PassThrough" />