请求过滤模块配置为拒绝查询字符串太长的请求。
我有上述错误,我几乎一直在尝试但没有运气
我的项目是Visual Studio 2013上的MVC4
我确定的事情是正确的并且经过了尝试。
我的控制器中的操作系统上有[AllowAnonymous] attr。
我在调试模式下运行应用程序或在Visual Studio上没有调试模式时没有问题。
这是我的溃败配置 routes.MapRoute( 名称:“默认”, url:“{controller} / {action} / {id}”, 默认值:new {controller =“Home”,action =“Index”,id = UrlParameter.Optional} );
这是我在网络服务器上收到的错误
答案 0 :(得分:3)
正如错误消息告诉你的那样
请求过滤模块配置为拒绝查询字符串太长的请求。
在屏幕截图中,您可以清楚地看到returnUrl
参数很大。
所以有解决方案
清除控制器方法中的returnUrl
参数[HttpPost] Login();
将以下内容添加到web.config
:
<强>的web.config 强>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="*"/> <!-- Replace * with any number, which is required -->
</requestFiltering>
</security>
</system.webServer>
在您的情况下,最终使用解决方案1.它只是您的代码中的一个错误,可以在不触及IIS或其他配置文件的情况下轻松修复。
有关请求查询字符串限制的详细信息,请参阅this post。
答案 1 :(得分:3)
像下面的示例一样插入/更新web.config文件
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="3000" maxUrl="1000" />
</requestFiltering>
</security>
</system.webServer>
<system.web>
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>
</configuration>
答案 2 :(得分:0)
我遇到了同样的问题,我用POST替换了GET方法,并且它起作用了。
答案 3 :(得分:0)
只需修改web.config 添加
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="30000" maxUrl="10000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
也在
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>