【问题标题】:Bad Request - Request Too Long HTTP Error 400. The size of the request headers is too long错误请求 - 请求太长 HTTP 错误 400。请求标头的大小太长
【发布时间】:2013-02-08 18:20:51
【问题描述】:

我的一些用户在请求我网站的某些页面时有时会收到以下错误: Bad Request - Request Too Long HTTP 错误 400。请求标头的大小太长

这似乎只发生在 Firefox 中。

删除用户 cookie 确实有帮助。

我不明白的是:我认为 cookie 会附加到每个请求中。为什么我的页面中只有一两个显示此错误,而大多数都没有?

它也不依赖于服务器页面。如果用户请求 http://example.com/user/Myname 他可能会得到错误。 如果他只是更改 URL 的大小写,它会再次起作用(例如 http://example.com/user/myname)。 (我正在运行不太关心大小写的 IIS)。

对于浏览器,这两个 URL 是不同的,对于服务器则不是。

知道发生了什么吗?

【问题讨论】:

    标签: firefox cookies


    【解决方案1】:

    看来饼干太多了。我确保没有那么多,现在它正在工作。

    【讨论】:

    • 这只是发生在我上一次更新后使用 Ubuntu 和 Firefox 访问 Office365 时。在其他电脑上工作,而不是我办公室的电脑。清除了 Office365 和 microsoftonline.com cookie,我又回来了!
    【解决方案2】:

    对于我们在 IIS 中托管的一些 Intranet 站点,我们的一些用户在 IE 8 上也遇到了同样的异常。该问题与使用 Kerberos 身份验证有关,其中用户属于许多活动目录组。

    我们从以下 Microsoft 支持文章中找到了解决方案:

    我们的解决方法是使用增加的值设置以下注册表项和/或创建它们(如果它们不存在):

    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters\MaxFieldLength DWORD(32 位)- 赋值数据 32000(十进制)
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters\MaxRequestBytes DWORD(32 位)- 赋值数据 8777216(十进制)

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters] "MaxFieldLength"=dword:00007d00 "MaxRequestBytes"=dword:0085ee00

    【讨论】:

    • 需要重启电脑才能使注册表项生效。
    【解决方案3】:

    解决方案 1

    从浏览器中删除所有域 cookie

    在 Firefox 53 中

    1. Alt -> 工具 -> 页面信息
    2. 安全性
    3. 查看 Cookie
    4. 全部删除

    在 Chrome 中 检查this superuser solution

    解决方案 2

    1. 安装Web Developer扩展(Firefox,Chrome,Opera
    2. 转到 cookie 标签 -> 删除 Domain Cookies 如下图所示

    解决方案 3

    • 使用隐身模式,看看它是否适合你

    更多详情:

    我在 Chrome 和使用 SharePoint 中的列表时遇到了同样的问题。

    在使用 Chrome 开发者仪表板的网络标签进行诊断后。我检查了标头并找到以名称 WSS_exp 开头的 large cookie 并从 chrome cookie manager 中删除所有这些都解决了我的问题

    【讨论】:

    • 第一个解决方案是chrome。 OP 询问了 Firefox 的答案
    • @Hybris95,我没有注意到这一点。现在修复了
    【解决方案4】:

    问题是由于 cookie 已损坏。简单的解决方案是删除所有 cookie,但这是解决该特定问题的最佳方法,我为 Firefox、Chrome 和 Internet Explorer 创建了自定义指南。见这里:http://timourrashed.com/how-to-fix-the-400-bad-request-error-message-from-a-website/

    【讨论】:

      【解决方案5】:

      此错误的另一个原因是用户位于过多的活动目录组中。更现代的 SSRS 版本没有这个问题。

      AD 组列表似乎是在 HTTP 标头中传递的。较旧版本的 SQL Server Reporting Services 具有标头大小限制。因此,如果用户在过多的组中,最简单的解决方法是删除不需要的组。

      如果删除组不是一个选项,您应该能够编辑 web.config 文件并增加限制。你可以在这里看到如何做到这一点...... https://www.mssqltips.com/sqlservertip/4688/resolving-the-maximum-request-length-exceeded-exception-in-sql-server-reporting-services/

      【讨论】:

        【解决方案6】:

        我使用 ViewData 而不是 TempData,问题已解决。

        【讨论】:

          猜你喜欢
          • 2018-10-06
          • 2020-05-13
          • 1970-01-01
          • 2019-03-17
          • 2014-08-23
          • 1970-01-01
          • 2018-08-09
          • 2020-09-24
          • 2021-07-20
          相关资源
          最近更新 更多