2008-11-28 6 views
13

Geliştirdiğim bu WCF servisi için MaxReceivedMessageSize'yi 5MB olarak ayarlamalıyım. Benim şu anki problemim, 5MB gibi daha büyük bir MaxBufferPoolSize değerine sahip olmanın veya orijinal 512KB değerini korumanın daha iyi olup olmadığının anlaşılmasıdır.WCF'de büyük mesajlar için büyük MaxBufferPoolSize değeriniz var mı?

Bu senaryo için önerilen ayarın ne olduğunu bilen var mı?
Özet olarak, MaxBufferPoolSize = 5242880 (5MB) veya MaxBufferPoolSize = 524288 (512KB) ayarlamalıyım?

GÜNCELLEME: açıklama için hizmet bazı taranmış belgeler ile birlikte yeni bir müşteri kaydı eklemek içindir. Sonuç olarak, mesaj boyutu 5MB'a kadar ulaşabilir.

Biz denemek ve alternatif teknolojiler kullanılarak taranan belgenin yükleme ayırmak, ancak gereklilik müşteri kaydı ve aynı işlemde olmalıdır taranan dokümanlar hem, biz bulana kadar biz bu anlayışla gitmeye karar verebilir WCF'nin işlem kabiliyetinin nasıl kullanılacağı.

cevap

9

Bu makaleye göz atın. http://kennyw.com/?p=51

Bu, arabelleklemeyi önlemek için büyük mesajlar için MaxBufferPoolSize değerini sıfırlamayı önerir.

+2

Bu eski soruya cevap verdiğiniz için teşekkürler, yardımcı olabilecek bir tür bilgi. – alextansc

+0

Bağlantı şu anda http://kennyw.com/?p=51 – mayu

+0

'Büyük mesajlar için' ne anlama geliyor? - Havuz boyutu tüm hizmet için geçerli, değil mi? – mayu

-3

5 Mb, bir Web Hizmeti üzerinden aktarılacak çok veri gibi görünüyor. Aradığınız ilk şey daha az veri göndermektir. İkincisi, boyutu ihtiyaçlarınıza göre ayarlamanız gerekiyor.

+5

WCF'nin basit web servislerinden daha fazlası için kullanılabileceğini unutmayın. – chilltemp

0

Dosyaları ve benzeri dosyaları aktarmaya çalışıyorsanız, bu tek seçeneğiniz gibi görünüyor. Aksi takdirde, bu gibi büyük veri parçalarının neden serviste ilk sırada gönderildiğini gözden geçiririm. Eğer dosya ve benzeri ise, sadece bu büyük boyutta ve olası yansımalarla yaşamak zorunda kalacaksınız. Ayrıca, yine hareket halindeyseniz, bir FTP bileşenini veya bunun yerine bir şey denemek isteyebilirsiniz.

Küçük bir ayrıntıyla daha fazla bilgi verebilirim. Sorunuza herhangi bir şey ekleyip eklemediğinizi görmek için daha sonra tekrar kontrol edeceğim.

2

WCF tabanlı bir hizmete büyük miktarlarda veri aktarmak mükemmel bir yöntemdir, ancak her hizmet örneğinin de beklememesi için arabelleğe aktarılmış aktarımlar yerine (BasicHttpBinding veya CustomBinding) akışını destekleyen bir bağa bakmanız gerekir. fazla hafıza.

--larsw