我有一个从浏览器 (IE,Chrome) 返回的 WCF rest\webHttpBinding 服务:
Bad Request - Invalid URL -
HTTP Error 400. The request URL is invalid.
该服务使用 GET(我们可能应该更改为 POST,但最初我们被告知最大 url 将是 50 个字符),我很好奇问题是什么......只是为了我自己的想法。
我们之前遇到过这个问题,网址超过 300 个字符,因此在 Web 配置中我们设置了 maxUrlLength,如下所示。
<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 注册表设置,但似乎没有任何相关性。还添加一个部分,但我认为应该足够好(根据 SO 答案)
任何想法可能会发生什么?
谢谢!
.net 4.0、iis 7、windows server 2008
编辑:添加我可以将 maxUrlLength 更新为较小的值,比如 50,并使用 > 50 的 URL,但它失败但失败,并显示“此请求的 URL 长度超过了配置的 maxUrlLength 值”。信息。因此,在它到达 WCF 服务之前,我感觉有别的东西导致了这个问题。