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