Можно ли увеличить свойство «Максимальная длина содержимого строки» для дуплексной привязки опроса без преобразования в пользовательскую привязку? - PullRequest
0 голосов
/ 10 июня 2011

Я использую Polling Duplex Binding для связи между моим клиентским приложением Silverlight и моим веб-сервисом WCF. Я отправляю сообщения из веб-приложения Silverlight в веб-службу WCF, асинхронно вызывая метод из веб-службы со строковым параметром xml. Все работало нормально, пока я не попытался отправить действительно большую строку XML. Тогда я получаю сообщение:

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

В этом случае обычно выполняется увеличение свойства maxStringContentLength для привязки в файле web.config. Проблема здесь в том, что при попытке добавить элемент readerQuotas (содержащий maxStringContentLength) к привязке он вообще не учитывается. Я обнаружил, что это известная проблема: http://blogs.msdn.com/b/silverlightws/archive/2010/04/04/some-known-wcf-issues-in-silverlight-4.aspx. Приведенное решение состоит в том, чтобы использовать пользовательскую привязку, содержащую дуплексный элемент Polling. Я попробовал это, но почему-то у меня не получилось.

У меня вопрос, есть ли какое-то другое решение этой проблемы или это единственное решение?

1 Ответ

1 голос
/ 10 июня 2011

Нет, вам действительно нужно перейти к пользовательской привязке. Класс PollingDuplexHttpBinding не предоставляет квоты считывателя, поэтому, если у вас есть проблема с квотами, вам действительно нужно перейти к пользовательскому маршруту привязки.

...