ASP.Net Core MVC 发生二次请求
程序员文章站
2022-04-02 17:46:42
...
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(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结
-
ASP.NET Core MVC 中实现中英文切换的示例代码
-
在 ASP.NET Core 中启用跨域请求(CORS)
-
Asp.Net Core控制器如何接收原始请求正文内容详解
-
asp.net core项目mvc权限控制:分配权限
-
asp.net core mvc权限控制:在视图中控制操作权限
-
ASP.NET Core中间件计算Http请求时间示例详解
-
基于Asp.Net Core MVC和AdminLTE的响应式管理后台之侧边栏处理
-
在Asp.Net Core MVC 3.0 视图运行时编译
-
你所不知道的ASP.NET Core MVC/WebApi基础系列 (二)