Если служба WCF возвращает байтовый массив в своем ответном сообщении, существует вероятность того, что длина данных по умолчанию превысит 16384 байта. Когда это происходит, исключением будет что-то вроде
Максимальная квота длины массива (16384)
был превышен при чтении XML
данные. Эта квота может быть увеличена на
изменение свойства MaxArrayLength
на XmlDictionaryReaderQuotas
объект, используемый при создании XML
читатель.
Весь совет, который я видел в Интернете, - просто увеличить настройки элемента <readerQuotas>
до максимума, что-то вроде
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
на сервере и аналогичные на клиенте.
Я хотел бы знать о любых недостатках этого подхода, особенно если размер байтового массива может быть лишь иногда очень большим. Приведенные выше настройки заставляют WCF объявлять огромный массив для каждого запроса? Нужно ли ограничивать максимальный размер возвращаемых данных, или вы можете просто указать буфер разумного размера и заставить WCF продолжать работу, пока все данные не будут прочитаны?
Спасибо!