簡體   English   中英

WCF-增加REST服務上的ReaderQuoatas

[英]WCF - Increase ReaderQuoatas on REST service

我有一個WCF REST服務,它接受JSON字符串

參數之一是一大串數字

這將導致以下錯誤-通過跟蹤和使用SVC跟蹤查看器可以看到

反序列化CarConfiguration類型的對象時發生錯誤。 讀取XML數據時,已超出最大字符串內容長度配額(8192)。 通過更改在創建XML閱讀器時使用的XmlDictionaryReaderQuotas對象上的MaxStringContentLength屬性,可以增加此配額。

現在,我閱讀了各種文章,建議如何糾正此問題

他們所有人都建議增加服務器和客戶端上的各種配置設置

例如, 在WebService調用中錯誤序列化字符串

http://bloggingabout.net/blogs/ramon/archive/2008/08/20/wcf-and-large-messages.aspx

http://social.msdn.microsoft.com/Forums/en/wcf/thread/f570823a-8581-45ba-8b0b-ab0c7d7fcae1

所以我的配置文件看起來像這樣

 <webHttpBinding>
        <binding name="webBinding" maxBufferSize="5242880"  maxReceivedMessageSize="5242880" >
          <readerQuotas  maxDepth="5242880" maxStringContentLength="5242880" maxArrayLength="5242880" maxBytesPerRead="5242880" maxNameTableCharCount="5242880"/>
        </binding>
   </webHttpBinding>
...
...
...
<endpoint 
      address="/"
      binding="webHttpBinding"
      bindingConfiguration="webBinding"

我的問題是我可以在服務器上更改此設置,但是客戶端上沒有WCF配置設置作為其REST服務,而我只是使用WebClient對象發出http請求

有任何想法嗎?

所以事實證明您需要在端點地址上使用完全限定的url,而不是相對的

使用JSON調用WCF REST服務時出錯。 超出長度配額(8192)

該錯誤不會在客戶端上發生,因為讀者配額僅是WCF,並且WebClient / HttpWebRequest本身不會反序列化或強制執行任何其他種類的配額。

因此,我想說的是,您可能會將配置放在錯誤的位置,並且沒有被使用。

要么,要么...您沒有在客戶端手動使用WCF DataContract序列化程序之一,對嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM