ASP.Net Core MVC 发生二次请求
生活随笔
收集整理的這篇文章主要介紹了
ASP.Net Core MVC 发生二次请求
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Bug回憶錄
昨天搭建新框架的時候,遇到一個很奇怪的“Bug”,每次請求都會觸發兩次Aciton,舉例子吧,Demo:
_Layout.cshtml
HomeController
Index.cshtml
<h1>Hi, I'm index page.</h1>最簡單不過的代碼,然后啟動項目,無意中就發現了,過程中發生了兩次請求:
再新增一個控制器測試仍然是如此。
Debug
試想第二次請求發生了什么?加入一個請求統計的接口,攔截第二次請求。開擼:
當第二次請求時候,重定向到百度網。
然后在Startup中注冊為單例:
public void ConfigureServices(IServiceCollection services){
services.AddMvc();
services.AddSingleton<IRequestStat, RequestStat>();
}
啟動!
發現它并沒有跳轉到百度網,但是也發現了"Bug"所在,favicon.ico是來自百度的。
第二次請求,其實瀏覽器是請求favicon.ico的tab圖標文件。
如果頁面沒有提供favicon.ico時會從請求里嘗試獲取,但在生產過程中,Action是帶有業務邏輯,我們肯定是不希望莫名其妙的被觸發一次。
?解決
在_Layout.cshtml中把favicon.ico加上即可
真是一不小心就掉坑了,記錄一下爬坑日志,一步一個?腳印?坑。
原文地址:https://www.cnblogs.com/EminemJK/p/10442126.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結
以上是生活随笔為你收集整理的ASP.Net Core MVC 发生二次请求的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【北京】线下活动 | Azure SQL
- 下一篇: .NET 之 ORM 性能评测