2012-09-08 50 views
3

我有一個使用ASP.NET 4/IIS 8的WCF服務(超過webHttpBinding),我沒有問題,使用JSON與GET進行通信。但是,今天我需要實現一個發送大量查詢字符串的方法(大約3000個字符,不是那麼長,但比我一直使用的要長)。我打電話給該服務,立即得到了一個404錯誤,甚至沒有在我的調試機器上進入我的代碼。我想到的第一件事是最大查詢字符串長度限制。我已經添加到了我的web.config:WCF說,它超過了最大查詢字符串值,而它不是

<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

也許設置maxQueryStringLengththe httpRuntime element

這是一個有點混亂,有兩個配置設置,但我相信他們可以作如下解釋:

  • httpRuntime maxQueryStringLength屬性是新的ASP.NET 4和配置的最大查詢字符串長度可以由ASP.NET HTTP運行時處理。在ASP.NET 4之前,這是一個硬連線值2048;現在可以增加。

  • system.web/security/requestFiltering maxQueryStringLength屬性是IIS 7設置,允許管理員限制最大查詢字符串長度。此設置不是特定於ASP.NET。

+1

這樣做。在兩個不同的地方都有這樣的設置令人困惑(我知道它可能在不同的級別進行了檢查,並且可以進一步優化,但是令人困惑)。謝謝。 –

相關問題