You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC网站/user-management路由Chrome/Edge失效,Firefox正常求排查

ASP.NET MVC路由ERR_HTTP2_PROTOCOL_ERROR排查思路

问题场景

使用ASP.NET MVC开发的网站,本地环境运行正常,但部署到开发环境后出现以下异常:

  • /usermanagement、/user-management路由在Chrome/Edge中报ERR_HTTP2_PROTOCOL_ERROR,仅Firefox可正常访问;
  • /administration/user-management路由在所有浏览器中均可正常访问;
  • Chrome/Edge访问异常路由时会跳转到chrome-error://chromewebdata/,控制台显示警告crbug/1173575, non-JS module files deprecated.,网站其他页面无异常。

控制器路由定义如下:

[Route("administration/user-management")]
[Route("user-management")]
public ActionResult Index()
{
    return View();
}

排查思路

1. 排查HTTP/2协议相关配置

  • 临时禁用开发环境Web服务器(IIS/Nginx等)的HTTP/2协议,切换为HTTP/1.1测试,验证是否是HTTP/2协议兼容性问题;
  • 查看服务器日志中对应请求的错误详情,重点关注HTTP/2帧传输异常、超时或资源加载失败的记录。

2. 检查路由冲突与URL重写规则

  • 排查开发环境的URL重写模块(如IIS URL Rewrite),确认是否存在针对/user-management或/usermanagement的特殊重定向/重写规则,导致Chrome/Edge处理异常;
  • 检查是否有区域路由、同名路由或全局路由规则与控制器属性路由存在优先级冲突,可在本地模拟开发环境路由配置尝试复现问题。

3. 静态资源与页面加载异常排查

  • 对比Firefox和Chrome/Edge的Network请求日志:在Firefox中记录/user-management页面加载的所有资源(CSS/JS/字体等),在Chrome/Edge中直接访问这些资源,排查是否存在资源加载失败的情况;
  • 针对控制台的non-JS module files deprecated警告,临时移除页面中的第三方资源或自定义模块引入,逐步排查是否是模块文件在Chrome/Edge的HTTP/2环境下解析异常导致页面中断。

4. 浏览器缓存与代理问题

  • 清除Chrome/Edge的所有缓存(包括HTTP缓存、Service Worker缓存),使用无痕模式测试,排除缓存影响;
  • 若开发环境存在反向代理(如Nginx、Cloudflare),尝试绕过代理直接访问服务器IP+端口的目标路由,验证是否是代理服务器的HTTP/2配置兼容性问题。

5. ASP.NET MVC路由配置细节

  • 调整控制器属性路由的优先级,明确路由顺序:
    [Route("user-management", Order = 1)]
    [Route("administration/user-management", Order = 2)]
    public ActionResult Index()
    {
        return View();
    }
    
  • 检查全局路由注册文件(如RouteConfig.cs),确认是否存在覆盖控制器属性路由的规则。

内容的提问来源于stack exchange,提问作者Patrick Yu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 21:15:16