Вопрос

У меня есть служба WCF REST, которая принимает строку JSON

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

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

Была ошибка, десериализующая объект типа карконфигурации. Максимальная квота длины содержимого строки (8192) была превышена при чтении данных XML. Эта квота может быть увеличена путем изменения свойства MaxStringContentLength на объекте XmldictionaryReaderQuotas, используемом при создании считывателя XML.

Теперь я читал всевозможные статьи, совещающие, как это исправить

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

напримерСтрока сериализации ошибок в вызове веб -сервиса

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 объект

Любые идеи?

Это было полезно?

Решение

Показывает, что вам нужен полный квалифицированный URL -адрес по адресу конечной точки, а не относительный

Ошибка вызова службы WCF REST с помощью JSON. квота длины (8192) превышена

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top