HTTP错误404.15 - 未找到

时间:2017-02-21 14:34:45

标签: c# visual-studio asp.net-mvc-4 iis-7.5

请求过滤模块配置为拒绝查询字符串太长的请求。

我有上述错误,我几乎一直在尝试但没有运气

我的项目是Visual Studio 2013上的MVC4

我确定的事情是正确的并且经过了尝试。

  • 使用[AllowAnonymous] Attr在我的课程中没有[授权] Attr。
  • 我在配置文件中添加了maxQueryStringLength =“32768”maxUrlLength =“65536”
  • 我补充说      - >    
  • 我的控制器中的操作系统上有[AllowAnonymous] attr。

  • 我在调试模式下运行应用程序或在Visual Studio上没有调试模式时没有问题。

  • 这是我的溃败配置 routes.MapRoute(             名称:“默认”,             url:“{controller} / {action} / {id}”,             默认值:new {controller =“Home”,action =“Index”,id = UrlParameter.Optional}         );

  • 这是我在网络服务器上收到的错误

enter image description here

4 个答案:

答案 0 :(得分:3)

正如错误消息告诉你的那样

  

请求过滤模块配置为拒绝查询字符串太长的请求。

在屏幕截图中,您可以清楚地看到returnUrl参数很大。

所以有解决方案

  1. 清除控制器方法中的returnUrl参数[HttpPost] Login();

  2. 将以下内容添加到web.config

  3. <强>的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"/>