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

在Startup.cs添加Mvc授权配置后出现HTTP Error 404.15请求过长错误

解决添加Mvc全局授权后出现HTTP Error 404.15的问题

嘿,我来帮你搞定这个问题!你在Startup.cs里添加了这段全局强制授权的Mvc配置后:

services.AddMvc(x => { 
    var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build(); 
    x.Filters.Add(new AuthorizeFilter(policy)); 
}).AddXmlSerializerFormatters();

遇到了**HTTP Error 404.15 - Not Found(请求筛选模块拒绝查询字符串过长的请求)**的错误,对吧?

问题根源

这个错误的核心原因是:当未登录的用户访问需要授权的页面时,系统会自动重定向到登录页,并且把原请求的Url作为ReturnUrl参数附加到登录请求的查询字符串里。如果原请求本身的查询字符串就很长,加上ReturnUrl编码后的内容,总长度会超过IIS默认允许的查询字符串长度(默认是2048字符),于是就触发了这个拒绝请求的错误。

可行的解决方案

我给你几个实用的解决办法,你可以根据自己的场景选择:

  • 调整IIS的查询字符串长度限制
    直接在项目的web.config中添加或修改<requestFiltering>配置,增大允许的查询字符串长度:

    <system.webServer>
      <security>
        <requestFiltering>
          <requestLimits maxQueryString="32768" /> <!-- 数值可以按需调整,比如设为32768足够应对大部分场景 -->
        </requestFiltering>
      </security>
    </system.webServer>
    

    修改完记得重启IIS站点或者调试会话,让配置生效。

  • 优化登录重定向的返回Url处理
    如果你不想修改IIS的全局限制,可以自定义Cookie认证的重定向逻辑,避免把超长的原Url全部附加到登录请求里。比如只保留原请求的路径部分,忽略多余的查询参数:

    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.LoginPath = "/Account/Login"; // 你的登录页路径
            options.Events = new CookieAuthenticationEvents
            {
                OnRedirectToLogin = context =>
                {
                    // 只保留原请求的路径,去掉超长的查询参数
                    var cleanReturnUrl = Uri.EscapeDataString(context.Request.Path.ToString());
                    context.Response.Redirect($"{options.LoginPath}?ReturnUrl={cleanReturnUrl}");
                    return Task.CompletedTask;
                }
            };
        });
    
  • 从根源优化请求参数
    排查一下触发错误的请求,看看是不是有不必要的超长查询参数。如果有的话,尽量改用POST请求传递数据,或者精简参数内容,从根本上缩短查询字符串的长度。

内容的提问来源于stack exchange,提问作者Zargham Nazeer Malik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:03:10