2018-11-23 19:0739611
BUG现象
今天排查BUG遇到一个有趣的BUG,测试的截图显示
这个BUG只在IE11下出现。
BUG原因
这个问题的原因是keep-alive机制引起。
当浏览器在向一个网址发起请求时,会建立一个tcp/ip连接,之后发起的请求会复用这个连接。
但是这个连接有两个限制,就是连接超时时间和最大连接次数,超过了就会断开,下次再请求这个地址,会重新建立一个新的ttcp/ip连接。
在chrome和火狐下每次请求都会去验证这个tcp/ip连接是否有效,但是IE11不会,也就是说在临界点的时候,IE11去请求的话,此时未超时,那么还会复用原来的tcp/ip连接,但是此时服务端判断已经超时,那么就会废弃掉这个tcp/ip连接。
此时的这个请求就会出现BUG中那样的网络错误0x2ef3。
BUG解决方案
这个错误难以重现,并且不是代码的问题。
如果想规避这个错误,可以在服务端关闭keep-alive,但是客户端和服务端每次请求都需要建立一个tcp/ip连接,很显然不能因噎废食。
在网上看了一些人的解决办法是说加大timeout的时间,不过只要在那个超时的临界点发出这个请求还是会出现这个问题。
也就是说到最后,最好的解决方案:
为了解决老板:加大timeout,假装解决了这个问题。
为了不再看到这个BUG:倡导别用IE。
作者:韩子卢
出处:https://www.cnblogs.com/vvjiang/
本博客文章均为作者原创,转载请注明作者和原文链接。
出处:https://www.cnblogs.com/vvjiang/
本博客文章均为作者原创,转载请注明作者和原文链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构