ASP.Net Core MVC 发生二次请求
Bug回憶錄
昨天搭建新框架的時(shí)候,遇到一個(gè)很奇怪的“Bug”,每次請(qǐng)求都會(huì)觸發(fā)兩次Aciton,舉例子吧,Demo:
_Layout.cshtml
HomeController
Index.cshtml
<h1>Hi, I'm index page.</h1>最簡(jiǎn)單不過的代碼,然后啟動(dòng)項(xiàng)目,無意中就發(fā)現(xiàn)了,過程中發(fā)生了兩次請(qǐng)求:
再新增一個(gè)控制器測(cè)試仍然是如此。
Debug
試想第二次請(qǐng)求發(fā)生了什么?加入一個(gè)請(qǐng)求統(tǒng)計(jì)的接口,攔截第二次請(qǐng)求。開擼:
當(dāng)?shù)诙握?qǐng)求時(shí)候,重定向到百度網(wǎng)。
然后在Startup中注冊(cè)為單例:
public void ConfigureServices(IServiceCollection services){
services.AddMvc();
services.AddSingleton<IRequestStat, RequestStat>();
}
啟動(dòng)!
發(fā)現(xiàn)它并沒有跳轉(zhuǎn)到百度網(wǎng),但是也發(fā)現(xiàn)了"Bug"所在,favicon.ico是來自百度的。
第二次請(qǐng)求,其實(shí)瀏覽器是請(qǐng)求favicon.ico的tab圖標(biāo)文件。
如果頁面沒有提供favicon.ico時(shí)會(huì)從請(qǐng)求里嘗試獲取,但在生產(chǎn)過程中,Action是帶有業(yè)務(wù)邏輯,我們肯定是不希望莫名其妙的被觸發(fā)一次。
?解決
在_Layout.cshtml中把favicon.ico加上即可
真是一不小心就掉坑了,記錄一下爬坑日志,一步一個(gè)?腳印?坑。
原文地址:https://www.cnblogs.com/EminemJK/p/10442126.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總?http://www.csharpkit.com?
總結(jié)
以上是生活随笔為你收集整理的ASP.Net Core MVC 发生二次请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【北京】线下活动 | Azure SQL
- 下一篇: DDD战略设计相关核心概念的理解