自写的一个站点带登录验证页面,访问首页的时候遇到错误如下: HTTP Error 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。
原因就是请求的字符串带了过长的参数。我的程序是写了登录验证页面。经过多次排查,才恍然大悟,我的登录页面没有开绿灯导致一直死循环被重定向。于是我在登录页面上加了[AllowAnonymous]后一切正常。
错误信息:

[AllowAnonymous]
public class AccountModel : PageModel
{
public void OnGet()
{
}
public IActionResult OnPost(string email,string password)
{
// 登录验证
return RedirectToPage("Index");
}
}
更多信息可查看右侧近期文章。里面有详细介绍。
报错原因
HTTP 404.15:请求筛选模块拒绝了查询字符串过长的请求。本例的真实原因是登录页未放行,导致"未登录 → 重定向到登录页 → 又被拦截"的死循环,返回地址不断叠加,URL 越滚越长。
解决办法
- 在登录页(PageModel 或 Controller)上添加 [AllowAnonymous],跳出重定向循环。
- 检查全局授权过滤器是否把登录页也纳入拦截范围。
- 如确有超长查询串需求,可在 web.config 中调整 requestLimits 的 maxQueryString 值。
相关阅读
- IIS 部署 WCF 报 HTTP 错误 404.3 的原因与解决办法
- HTTP Error 500.30 - ANCM In-Process Start Failure
- WebApi Post 404 Not Found|常见原因与解决办法
- MissingMethodException: Method not found