WCF - Увеличьте readerquoatas на обслуживании отдыха
-
22-10-2019 - |
Вопрос
У меня есть служба 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 на стороне клиента, не так ли?