3

我有一个webHttpBinding使用 ASP.NET 4/IIS 8的 WCF 服务(通过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 个字符。我错过了什么吗?

4

1 回答 1

4

也许设置maxQueryStringLengthhttpRuntime 元素中。

有两个配置设置有点混乱,但我相信它们可以解释如下:

  • maxQueryStringLengthhttpRuntime属性是 ASP.NET 4 的新属性,用于配置 ASP.NET HTTP 运行时可以处理的最大查询字符串长度。在 ASP.NET 4 之前,这是 2048 的固定值;现在可以增加了。

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

于 2012-09-08T09:46:32.907 回答