В WCF, вы должны иметь большое значение MaxBufferPoolSize для больших сообщений? - PullRequest
13 голосов
/ 28 ноября 2008

Для этой службы WCF, которую я разработал, я должен установить MaxReceivedMessageSize равным 5 МБ. Моя текущая проблема - выяснить, лучше ли иметь большее значение MaxBufferPoolSize, например 5 МБ, или сохранить исходное значение 512 КБ.

Кто-нибудь знает, каков рекомендуемый параметр для этого сценария?
Короче говоря, я должен установить MaxBufferPoolSize = 5242880 (5 МБ) или MaxBufferPoolSize = 524288 (512 КБ)?

ОБНОВЛЕНИЕ: Для пояснения, услуга предназначена для вставки новой записи клиента вместе с некоторыми отсканированными документами. В результате размер сообщения может достигать 5 МБ.

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

Ответы [ 4 ]

9 голосов
/ 27 февраля 2009

Проверьте эту статью. http://kennyw.com/?p=51

Предлагается установить значение MaxBufferPoolSize равным нулю для больших сообщений, чтобы избежать буферизации.

2 голосов
/ 29 декабря 2008

Совершенно нормально передавать большие объемы данных в службу на основе WCF, но вы должны рассмотреть привязку, которая поддерживает потоковую передачу вместо буферизованных передач (BasicHttpBinding или CustomBinding), чтобы каждый экземпляр службы не перегружался память.

- larsw

0 голосов
/ 28 декабря 2008

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

Я мог бы предоставить больше информации с небольшим уточнением. Позже я проверю, добавили ли вы что-нибудь в свой вопрос.

0 голосов
/ 17 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...