2008-11-28 2 views
13

Für diesen WCF-Dienst, den ich entwickelt habe, muss ich MaxReceivedMessageSize auf 5 MB setzen. Mein aktuelles Problem ist herauszufinden, ob es besser ist, einen größeren MaxBufferPoolSize-Wert wie 5 MB zu haben oder den ursprünglichen 512 KB-Wert beizubehalten.In WCF sollten Sie große MaxBufferPoolSize-Wert für große Nachrichten haben?

Weiß jemand, was ist die empfohlene Einstellung für dieses Szenario?
Kurz gesagt, sollte ich MaxBufferPoolSize = 5242880 (5MB) oder MaxBufferPoolSize = 524288 (512KB) setzen?

UPDATE: Zur Verdeutlichung soll der Dienst einen neuen Kundendatensatz zusammen mit einigen gescannten Dokumenten einfügen. Daher kann die Nachrichtengröße bis zu 5 MB erreichen.

Wir könnte versuchen und trennen Sie den Upload des gescannten Dokuments mit alternativen Technologien, aber die Anforderung war sowohl Kundendatensatz und gescannte Dokumente müssen in der gleichen Transaktion sein, so dass wir beschlossen, mit diesem Ansatz zu gehen, bis wir glauben Sie erfahren, wie Sie die Transaktionsfunktion von WCF nutzen können.

Antwort

9

Sehen Sie sich diesen Artikel an. http://kennyw.com/?p=51

Es wird empfohlen, MaxBufferPoolSize für große Nachrichten auf Null zu setzen, um Pufferung zu vermeiden.

+2

Vielen Dank für die Beantwortung dieser alten Frage, das ist die Art von Informationen, die helfen könnte. – alextansc

+0

Der Link ist jetzt http://kennyw.com/?p=51 – mayu

+0

Was bedeutet es "für große Nachrichten" - die Pool-Größe ist für den gesamten Dienst, oder? – mayu

-3

5 Mb scheint wie viele Daten über einen Web Service zu übertragen. Das erste, was Sie suchen sollten, ist weniger Daten zu senden. Zweitens müssen Sie die Größe auf Ihre Bedürfnisse einstellen.

+5

Denken Sie daran, dass WCF für mehr als einfache Webdienste verwendet werden kann. – chilltemp

0

Wenn Sie versuchen, Dateien und ähnliches zu übertragen, scheint dies die einzige Option zu sein. Ansonsten würde ich überprüfen, warum solche großen Datenmengen überhaupt über den Dienst gesendet werden. Wenn es Dateien und dergleichen sind, müssen Sie nur mit dieser großen Größe und den möglichen Auswirkungen leben. Sie können auch, wenn es sich um Dateien handelt, die Sie verschieben, eine FTP-Komponente oder etwas anderes ausprobieren.

Ich könnte mehr Informationen mit ein wenig Ausarbeitung liefern. Ich werde später nachsehen, ob Sie etwas zu Ihrer Frage hinzugefügt haben.

2

Es völlig in Ordnung ist, große Mengen von Daten zu einem WCF-basierten Dienst zu übertragen, aber Sie sollten einen Blick in Bindung, die unterstützt statt gepufferte Stromübertragungen (Basichttpbinding oder ein Custom), so dass jede Dienstinstanz nicht zu nicht Schwein viel Gedächtnis.

--larsw