-->

WCF说,这超出最大的查询字符串值,而不是(WCF says it exceeds maximum

2019-09-22 06:15发布

我有一个WCF服务(在webHttpBinding使用ASP.NET 4 / IIS 8),我与它使用JSON与沟通没有问题GET 。 不过,今天我需要实现一个发送大量的查询字符串(约3000字,比我一直在使用并不长,但更长)的方法。 我所谓的服务,并立即得到了一个404错误,甚至没有踏进我的代码在我的调试机器。 即来到我的脑海里的第一件事是最大的查询字符串长度的限制。 我已经添加到了我的web.config:

 <system.webServer>
    <directoryBrowse enabled="true" />
    <security>
      <requestFiltering>
        <requestLimits maxQueryString="8000"></requestLimits>
      </requestFiltering>
    </security>
  </system.webServer>

现在,当我拨打服务我得到这个服务器错误: The length of the query string for this request exceeds the configured maxQueryStringLength value. 够奇怪的,我试过其他值,如200000 ,大大超过我的查询字符串和URL,这是约3000字。 我缺少的东西吗?

Answer 1:

也许设定maxQueryStringLength中的httpRuntime元素 。

这是一个有点混乱,有两个配置设置,但我相信他们可以作如下解释:

  • 所述httpRuntime maxQueryStringLength属性是新的ASP.NET 4和配置可以由ASP.NET HTTP运行时被处理的最大的查询字符串长度。 到ASP.NET 4之前,这是2048的硬连线值; 现在可以增加。

  • 所述system.web/security/requestFiltering maxQueryStringLength属性是一个IIS 7设置,并允许管理员限制最大查询字符串长度。 此设置不是特定于ASP.NET。



文章来源: WCF says it exceeds maximum query string value while it is not