2010-06-01 2 views
1

У меня есть службы WCF REST, который принимает строку JSONWCF - Повышение ReaderQuoatas на REST службе

Одним из параметров является большой строкой чисел

Это вызывает следующую ошибку - которая видна прослеживая и с помощью SVC Trace Viewer

Ошибка десериализации объекта типа CarConfiguration. При чтении XML-данных была превышена максимальная квота длины строки (8192). Эта квота может быть увеличена путем изменения свойства MaxStringContentLength объекта XmlDictionaryReaderQuotas, используемого при создании XML-считывателя.

Теперь я прочитал все виды статей советуя, как исправить эту

Все они рекомендуют увеличить различные конфигурации настроек на сервере и на клиенте

например Error Serializing String in WebService call

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, и я просто делаю http-запрос, используя объект WebClient

любые идеи?

ответ

0

Эта ошибка не будет выполняться на клиенте, поскольку квитанции читателя являются только WCF, а WebClient/HttpWebRequest не выполняют десериализацию самостоятельно или не применяют какие-либо другие квоты.

Поэтому я бы сказал, что, скорее всего, вы ставите конфигурацию в неправильном месте, и ее не собирают.

Либо это, либо ... вы не используете один из WCF DataContract Serializers вручную на стороне клиента, не так ли?

+0

Определенно положить параметры в правильном Binding, как сделали осознанную опечатку в конечной точке и видели он не работает. Вид согласен с вами в том, что он не нужен клиенту, но так много статей говорят, что он должен быть в обоих. Очевидно, таких настроек нет у клиента-отдыха. – ChrisCa

+0

Beats me then. Какой правильный адрес для конечной точки, которую вы настраиваете? – tomasr