亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

服務器錯誤404解決方法 出現404錯誤頁面怎么解決


服務器錯誤404解決方法 出現404錯誤頁面怎么解決

文章插圖
asp.net core mvc 對應著 .NET Framework 中的 ASP.NET MVC, 前者可以跨平臺,可擴展,高性能,不過令人驚訝的是,雖然 ASP.NET Core 提供了大量的可選項可以完美的處理 404 錯誤,但 ASP.NET Core MVC 在默認情況下并沒有選擇它們,你說奇怪不?
這就造成了當請求一個不存在的頁面時,應用程序將會返回一個 404 錯誤,ASP.NET Core MVC 目前會展示一個瀏覽器通用的錯誤頁,如下圖所示:
這篇文章我準備討論 3種 方式來優(yōu)雅的處理這種 404 錯誤 。
接下來我會在 Visual Studio 2019 中創(chuàng)建一個 ASP.NET Core MVC 項目,用這個項目去展示如何處理 404 錯誤 。
然后把 ASP.NET Core MVC 項目跑起來,你會看到應用程序默認的首頁,上面還帶一行 welcome 的歡迎語,如下圖所示:
接下來我們嘗試在瀏覽器中輸入一個不存在的網址,比如說:http://localhost:6440/welcome, 這時候 ASP.NET Core MVC 引擎將會訪問這個地址的資源,可想而知,引擎肯定會返回一個 404 錯誤,你也會看到如下錯誤頁,通常情況下這是非常讓人難堪的,對吧 。
檢查 ASP.NET Core MVC 的 Response.StatusCode有幾種方式可以比較完美的處理這種默認的 404 錯誤,一個簡單的方案就是去檢查 response 的 http 狀態(tài)碼,一旦發(fā)現這個 status = 404,你可以重定向到一個web 中存在的頁面或者一個特定的錯誤頁,下面的代碼展示了,你可以在 Startup.Configure 方法中進行全局判斷,一旦發(fā)現404錯誤就導向 home 頁面 。
public class Startup{public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.Use(async (context, next) =>{await next();if (context.Response.StatusCode == 404){context.Request.Path = "/Home";await next();}});}}接下來運行web程序,然后鍵入 http://localhost:6440/welcome,你會發(fā)現最終展示了 home 頁面 。
下面是 Configure 方法的完整代碼 。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}else{app.UseExceptionHandler("/Home/Error");}app.Use(async (context, next) =>{await next();if (context.Response.StatusCode == 404){context.Request.Path = "/Home";await next();}});app.UseStaticFiles();app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints =>{endpoints.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");});}使用 UseStatusCodePages 中間件第二種可選的解決方案是,采用 ASP.NET Core 中內置的 UseStatusCodePages 中間件,下面的代碼展示了如何在 Startup.Configure 方法中去實現 StatusCodePages。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.UseStatusCodePages();//Other code}現在你可以把程序跑起來然后瀏覽一下這個不存在的資源,下圖展示了這種情況下的輸出結果:
使用 UseStatusCodePagesWithReExecute 中間件你可以利用UseStatusCodePagesWithReExecute 中間件來處理 那種 Response 還沒開始構建 就遇到的一些不成功的狀態(tài),有點繞哈,因此這個中間件不會處理 Response status 等于 404 的情況,當 404 發(fā)生的時候,這個中間件要做的就是將 request 重定向到另外一個 Action 去處理這個錯誤 。
下面的代碼展示了如何使用這個中間件將 request 重定向到另外一個 action 方法 。
app.UseStatusCodePagesWithReExecute("/Home/HandleError/{0}");然后再來看一下被重定向的 Action 方法 。
[Route("/Home/HandleError/{code:int}")]public IActionResult HandleError(int code){ViewData["ErrorMessage"] = $"Error occurred. The ErrorCode is: {code}";return View("~/Views/Shared/HandleError.cshtml");}現在我把展示錯誤信息的 HandleError 視圖的創(chuàng)建留給你去實現吧!


以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!

「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助: