2012-12-26 24 views
1

我有一個從瀏覽器返回一個WCF休息\的WebHttpBinding服務(IE,Chrome瀏覽器):IIS託管WCF休息服務獲得400錯誤,是URL太長?

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

該服務使用GET(我們也許應該改爲POST,但最初我們被告知,最大的URL會50字符),我很好奇這個問題是什麼......只是爲了我自己的想法。

我們之前有過這個問題的URL超過了300個字符,所以在web配置中我們設置了maxUrlLength,如下所示。

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

這是工作什麼時候做這個更新,但現在它似乎並沒有工作,超過300我們得到400錯誤。

我認爲別的東西現在阻止了這個請求。我之前說過這個b/c,我們在我們自己的日誌文件和wcf'diagnostics'日誌文件中有信息。現在,這些都沒有被寫入...它的服務甚至沒有被捲入。而以前如果我打到服務器本身的服務,我會得到這個錯誤

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

但我不再會得到那個錯誤。

我們不'擁有'服務器,這是其他一些是管理員和事情之前已更改沒有我們通知。

我環顧SO,但大多數人提到設置診斷。有Http.sys registry settings for IIS,我從http://social.msdn.microsoft.com得到,但似乎沒有任何相關性。還添加一個部分,但我相信應該是足夠好的(根據SO答案)

任何想法可能發生什麼?

謝謝!

.NET 4.0,IIS 7,Windows Server 2008的

編輯:並添加我可以更新maxUrlLength的東西很小,比如50,並使用> 50的URL和失敗,但失敗,出現「此請求的URL長度超過了配置的maxUrlLength值。「信息。所以我感覺別的,在它到達WCF服務之前,正在引發這個問題。

+0

如果您有很長的網址可能會考慮設計?也許發佈結構化數據而不是查詢字符串? – bryanmac

+0

配置文件maxurllength仍然是5000嗎? –

+0

是maxurllength仍然5000 ...添加編輯原始帖子(使用小maxUrlLength值) –

回答

1

我有這個同樣的問題,由於this answer能夠通過增加解決了下列文件:

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