我们创建了使用Windows身份验证的ASP.NET MVC应用程序。现在,我们遇到了一些用户访问该网站时收到以下错误消息的问题:
HTTP Error 400. The size of the request headers is too long.
这似乎是由于用户位于太多的Active Directory组中。
我已经做了以下工作:
我在运行Web应用程序的服务器上添加了以下注册表项:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ MaxFieldLength ==> 65536
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ MaxRequestBytes ==> 16777216
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lsa \ Parameters \ MaxTokenSize ==> 65535
我还在通过其访问Web应用程序的客户端计算机上设置了以下注册表项:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lsa \ Parameters \ MaxTokenSize ==> 65535
然后我重新启动了所有计算机,并尝试再次访问该Web应用程序。我仍然收到上述错误消息。
有人知道我能做什么吗?如何进一步调试和分析此问题?
您是否可以根据需要在web.config中设置低于请求长度限制的值来再次检查?
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" />
</system.web>
</configuration>
和
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>