Chrome与Edge运行ASP.NET MVC应用的行为差异及报错问题咨询
关于Chrome访问ASP.NET MVC应用报错的排查方案
嘿,作为常年和ASP.NET MVC调试坑打交道的开发者,我来帮你捋捋Chrome为啥会抽风,而Edge却正常~
1. 核心问题:Chrome访问的地址缺了端口号
你说Chrome打开的是127.0.0.1/Index,但Edge用的是http://localhost:50060/——这明显是Chrome访问的地址没带上应用实际运行的端口,导致请求找不到对应的服务,自然被拒绝了。
大概率是Visual Studio的启动配置搞的鬼:
- 右键你的MVC项目 → 选「属性」→ 切到「Web」标签页
- 看看「启动URL」是不是填成了
127.0.0.1/Index,完全没加端口 - 改成
http://localhost:50060/Index,或者直接留空让VS自动生成正确的带端口地址就行 - 临时救急的话,手动给Chrome的地址加上
:50060,比如127.0.0.1:50060/Index,应该就能正常打开了
2. Chrome缓存残留了旧地址
Chrome会死死记住之前访问过的地址,哪怕现在应用的运行端口变了,它可能还在顽固地用旧的无端口地址请求:
- 按
Ctrl+Shift+Delete调出Chrome的清除数据界面 - 勾选「缓存的图片和文件」「浏览历史记录」,时间范围选「过去24小时」就行(嫌麻烦选「所有时间」也ok)
- 点「清除数据」,然后重新F5启动调试试试
3. 代理设置干扰了本地请求
有时候Chrome的代理设置会坑本地请求,而Edge可能用的是系统默认代理或者单独的配置:
- 打开Chrome设置 → 搜「代理」→ 点「打开您计算机的代理设置」
- 先看看「自动检测设置」是不是开着,开着的话暂时关掉试试;再检查「代理服务器」有没有被误设置
- 另外一定要确认「跳过本地地址的代理服务器」是勾选状态(Windows代理设置的「高级」选项里能找到)
4. 扩展程序误拦截了本地请求
某些隐私类、广告拦截类的Chrome扩展,可能会把本地127.0.0.1的请求当成恶意请求给拦了:
- 地址栏输入
chrome://extensions/打开扩展管理页 - 暂时禁用所有扩展,然后重启调试看问题消不消失
- 如果好了,再逐个启用扩展,揪出那个搞事情的家伙
5. 极端情况:hosts文件映射异常
虽然Edge能正常访问localhost,但万一hosts文件里127.0.0.1的映射出问题,也可能影响Chrome:
- 右键「记事本」→ 以管理员身份运行
- 打开
C:\Windows\System32\drivers\etc\hosts文件 - 检查有没有这行:
127.0.0.1 localhost,没有的话加上,保存后重启Chrome试试
内容的提问来源于stack exchange,提问作者Codey
相关产品推荐
相关产品推荐

