2008-11-28 18 views
13

對於我開發的這個WCF服務,我必須將MaxReceivedMessageSize設置爲5MB。我目前的問題是確定是否有更大的MaxBufferPoolSize值,比如5MB,還是保留原始的512KB值。在WCF中,您是否應該爲大消息使用MaxBufferPoolSize值較大的值?

有誰知道這種情況下推薦的設置是什麼?
總之,我應該設置MaxBufferPoolSize = 5242880(5MB),或MaxBufferPoolSize = 524288(512KB)?

更新:爲了說明起見,該服務旨在插入新的客戶記錄以及一些掃描的文檔。因此,郵件大小可能高達5MB。

我們可以嘗試使用替代技術分開掃描文檔的上傳,但要求是雙方的客戶記錄,並掃描文件必須在同一個事務,所以我們決定採用這種方法,才明白瞭解如何使用WCF的事務處理能力。

回答

9

看看這篇文章。 http://kennyw.com/?p=51

它建議將MaxBufferPoolSize設置爲零以消除大消息,以避免緩衝。

+2

感謝您回答這個老問題,這是可以提供幫助的那種信息。 – alextansc 2009-03-03 14:28:50

-3

5 MB似乎有很多數據要通過Web服務傳輸。 你應該尋找的第一件事是發送更少的數據。 其次,您需要根據需要設置尺寸。

+5

請記住,WCF可以用於更多簡單的Web服務。 – chilltemp 2008-12-17 15:55:14

0

如果您嘗試傳輸文件等,這似乎是您唯一的選擇。否則,我會回顧爲什麼如此大的數據首先是通過服務發送的。如果是文件等,你只能忍受這麼大的規模和可能的影響。你也是,如果它是你正在移動的文件,可能想嘗試一個FTP組件或其他東西。

我可以提供更多的信息和一點細節。稍後我會再回來查看您是否在您的問題中添加了任何內容。

2

將大量數據傳輸到基於WCF的服務是完全可以的,但您應該查看支持流而不是緩衝傳輸(BasicHttpBinding或CustomBinding)的綁定,以便每個服務實例也不會過多很多記憶。

--larsw

相關問題