您可以增加Web服务器允许的请求大小.但是,请查看浏览器发送到服务器的cookie的数量和大小.清除您的Cookie并重试,看看您是否可以减少应用使用的Cookie的大小和数量.越少越好!移动浏览器可能会出现这些错误,因为它们不允许与桌面浏览器相同的大小(?).
该错误还可能意味着查询字符串变得太大.
在 Windows 系统中,通常会由于 http.sys 服务中设置的默认标头大小限制而发生此错误。该服务在请求转发到应用程序之前充当保护层,以防止其被无效请求淹没。
您可以通过修改 Windows 注册表来覆盖默认的最大标头限制。
按照步骤 :
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters或手动向下钻取。资源:
我的 .NET MVC 解决方案在我的情况下,我声称将我的会话 cookie 乘以在我的浏览器 cookie 中如下所示:
.AspNet.ApplicationCookie
.AspNet.ApplicationCookieC1
.AspNet.ApplicationCookieC2
.AspNet.ApplicationCookieC3
.AspNet.ApplicationCookieC4
.AspNet.ApplicationCookieC5
.AspNet.ApplicationCookieC6
.AspNet.ApplicationCookieC7
__RequestVerificationToken
Run Code Online (Sandbox Code Playgroud)
我只是去我的 mssql 管理工作室中的 aspNetUserClaims 表并清除它。然后清除项目的浏览器cookie。
刷新了页面。卡拉斯!!!完毕!!我相信这是因为我从一个数据库连接字符串切换到另一个数据库连接字符串,这导致 claimManager 重新创建会话并添加到我的 cookie。在饱和时,一切都爆炸了。
检查MSDN:
原因
当用户是许多Active Directory用户组的成员时,可能会出现此问题。当用户是大量活动目录组的成员时,该用户的Kerberos身份验证令牌的大小会增加。用户发送到IIS服务器的HTTP请求在WWW-Authenticate标头中包含Kerberos令牌,并且标头大小随着组数的增加而增加。如果HTTP标头或数据包大小超过了IIS中配置的限制,则IIS可能会拒绝该请求并将此错误作为响应发送。
解析度
要变通解决此问题,请选择以下选项之一:
A)减少用户所属的Active Directory组的数量。
要么
B)修改IIS服务器上的MaxFieldLength和MaxRequestBytes注册表设置,以使用户的请求标头不被认为太长。若要确定MaxFieldLength和MaxRequestBytes注册表项的适当设置,请使用以下计算:
使用以下文章中描述的公式计算用户的Kerberos令牌的大小:
用户属于多个组时Kerberos身份验证问题的新解决方案 http://support.microsoft.com/kb/327825
在IIS服务器上将MaxFieldLength和MaxRequestBytes注册表项配置为值4/3 * T,其中T是用户的令牌大小,以字节为单位。HTTP使用base64编码对Kerberos令牌进行编码,因此将令牌中的每3个字节替换为4个base64编码的字节。在重新启动HTTP服务之前,对注册表所做的更改将不会生效。此外,您可能必须重新启动任何相关的IIS服务。
小智 5
试试这个
<system.web>
<httpRuntime maxRequestLength="2097151" executionTimeout="2097151" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
所述的maxRequestLength默认大小为4096 KB(4 MB).
如果浏览器反复请求某个资源,有时请求标头值长度增加次数,因此我们可能会尝试将请求长度扩展到最大长度.我希望这可能有用
| 归档时间: |
|
| 查看次数: |
46302 次 |
| 最近记录: |