IIS托管的WCF REST服务获得400个错误,URL太长了



我有一个从浏览器返回(即,chrome)的WCF REST WebHttpBinding服务:

Bad Request - Invalid URL - 
HTTP Error 400. The request URL is invalid.

服务用途获取(我们可能应该更改以发帖,但最初我们被告知最大URL是50个字符),我很好奇问题是什么……只是我自己的想法。/p>

我们以前有一个超过300个字符的URL遇到了这个问题

  <system.web>
    <compilation targetFramework="4.0" />
    <httpRuntime maxUrlLength ="5000" maxQueryStringLength="2048" />
  </system.web>

这是在此更新的时间工作,但现在似乎不起作用,超过300的内容我们会遇到400个错误。

我认为现在其他事情正在阻止请求。我说这个b/c以前我们在自己的日志文件和WCF"诊断"日志文件中有信息。现在,这两个都没有写给...就像该服务甚至没有参与。以前,如果我在服务器本身上达到服务,我会得到此错误

The length of the URL for this request exceeds 
 the configured maxUrlLength value.

,但我不再遇到这个错误。

我们不"拥有"服务器,那就是管理员,并且以前没有我们被告知。

我环顾四周,但大多数提到的设置诊断。我从http://social.msdn.microsoft.com获得了IIS的http.sys注册表设置,但似乎没有任何意义。还要添加一个部分,但我相信应该足够好(根据答案)

有什么想法会发生什么?

谢谢!

.NET 4.0,IIS 7,Windows Server 2008

edit:要添加我可以将最大长度更新为小的东西,例如50,使用> 50的URL,并且失败了,但"此请求的URL长度超过了已配置的Maxurllength值"而失败。信息。因此,在到达WCF服务之前,我会感觉到其他问题。

我也遇到了同样的问题,因此,由于此答案,可以通过添加以下内容来解决它:

<system.web>
  <httpRuntime maxUrlLength="500" />
</system.web>

您的问题是您不是使用查询字符串,而是使用路径。路径的最大长度为255。
查询字符串和通向WCF的路径之间的差异如下
使用路径 = http://testservice/service.svc/callfunction/testdata
通过使用查询字符串
使用querystring -http://testservice/service.svc/callfunction?param1 = testData

最新更新