設置404錯誤頁的意義我就不說了。主要想記錄一下這次設置錯誤頁遇到的問題和解決方法。
第一版:本地測試能跳轉到自定義的404頁面,上線之後卻沒能跳轉。
因爲之前的項目有跳轉404頁面的例子,所以直接拷貝了一份到現在的項目,代碼如下:
HomeCo錯誤的英文ntroller
public ActionResult Index() { Response.StatusCode = 404; Response.Charset = "utf-8"; return View("404"); }
Web.config
<customErrors defaultRedirect = "home/error" mode="On"> <error statusCode="404" redirect="/home/error"/> </customErrors>
按照上面的代碼書寫,本地測試跳轉到了自定義的404頁,上線之後卻是默認的404頁。就這樣,第一個版本失敗了。
第二版:上線之後可以正常跳轉至404頁面,狀态碼錯誤代碼101卻返回302。
開發中”本地環境可以,生産環境卻不行錯誤的英文“的情況屢見不鮮。後來幹脆在阿裏雲租了一台服務器,這裏有個小插曲,我發布了一個測試版本不能正常運行,
原因是這個””。
測試版本跑通之後,發現線上沒有跳轉自定義404頁的原因是沒有設置IIS。設置步驟如下圖:
1.找到IIS的4跳轉代理ip04錯誤頁選項(IIS裏還有ASP.NET的.NET錯誤頁,這裏最好選IIS的錯誤頁,下面有寫原因)
2.打開錯誤頁後,編輯自定義錯誤頁,這裏以相當路徑設置錯誤頁url(IIS的版本不一樣,編輯自定義錯誤頁的窗口也不一樣)
設置OK之後,本以爲大功告成,卻發現根本錯誤,返回狀态碼是302,錯誤曆史文化信息“Response.StatusCode = 404″也沒強撸過來。
至此,第二個版本還是失敗了。
第三版:利錯誤678用httpErrors設置網站404頁跳轉(正确版本)
之後了解到customE上線審車流程及費用rrors會以302重定向跳轉至自定義錯誤頁,雖然跳轉到了自定義錯誤頁,但狀态碼卻不對,并且url都會帶參數aspxerrorpath。
http上線審車流程及費用Errors隻需要配置一下Web.config即可,配置好之後會自動映射到IIS:
Web.config錯誤的愛
<httpErrors errorMode="Custom" existingResponse="Replace"> <clear /> <error statusCode="404" path="Error404.html" /> <error statusCode="500" path="Error500.html" /> </httpErrors>
映射之後的IIS
到這自定義404頁才算設置正确,用戶請求的錯誤的url會跳轉至自定義404頁,狀态碼返回404,并且保持原url。上線吧華彩少年在哪個平台播出
分析:ASP.NET下的.NET錯誤頁和IIS下的錯誤頁有什麽區别?
在Web.config中,分别配置<customErrors>和<httpErrors>節點即可完成兩者錯誤頁的設置。主要有以下不同點:
1.從定義上,<customErrors>設置ASP.NET應用程序的錯誤;<httpErrors>是I版本不兼容如何解決IS7.0新增的特性,設置IIS對http請求的錯誤處理;
2.Visual Studio提供了一個脫離IIS但能執行ASP.NET的環境。想必<customErrors>就是爲其準備的;
3.<httpE版本真绫rrors>優先級要高于<c版本英文ustomErrors>。這也是”在本地可以,一上線就不行了”的一個原因。
網站設置404錯誤頁的經曆原文鏈接:https://qipaiyuanmaxiazai.com/12155.html,轉載請注明出處~~~
評論0