Получить большой объект с WCF

Я пытался получить большой объект с XML поверх WCF. Это не сработает, если я установлю maxStringContentLength={Default value},

Это работает только когда я увеличиваю maxStringContentLength но это снижает производительность.

Есть ли решение этой проблемы без увеличения maxStringContentLength?

2 ответа

Краткий ответ - нет (для буферизованных сообщений). Если вам нужно получить большие строковые данные, вам нужно увеличить квоты читателя. Вы должны установить их в соответствии с максимальным объемом данных, которые вы хотите разрешить.

Это кодовый запах для большинства сред WCF. Если вы отправляете большой кусок XML, это обычно означает, что вы не используете DataContract для отправки объектов.

Вы также отметили, что хотите использовать потоковую передачу. Если это так, то квота считывателя не должна вступать в игру, потому что то, что вы передаете, - это поток, который будет содержать ваши данные без какого-либо контракта на данные.

Если вы используете буферы, то вы можете увеличить размер ваших ReaderQuotas, но это идет на карту памяти. Помните, что эти буферы устанавливаются для каждого входящего вызова WCF, который вы можете обрабатывать одновременно, чтобы вы могли столкнуться с проблемами.

Другие вопросы по тегам