2012-03-08 21 views
0

我們有一個WCF服務,其閾值爲30MB,通過http消息發送文件,高於該值的任何內容都將通過文件副本傳輸並將路徑發送回調用方。現在我們被要求刪除該文件副本,因爲客戶抱怨它太慢了。因此,決定在通過WCF/HTTP發送二進制內容時刪除任何大小限制。WCF/Http上的最大二進制內容長度

我的問題是 - 這有多可靠?通過在單個WCF消息中傳輸2GB文件(如果甚至可能),我們會遇到什麼類型的問題?

謝謝!

回答

3

如果您將WCF中的MaxReceivedMessageSize設置爲WCF服務的足夠高的值,則可以通過該服務推送相當大的文件。最大值是int64.MaxValue = 9,223,372,036,854,775,807,所以你應該可以設置一個值來覆蓋2GB的消息

您可能想要控制MaxBufferSize以確保您不會嘗試在內存中存儲過多內容,並且可能會考慮切換到更高效的二進制MTOM消息編碼。請注意,在二進制文件已被編碼後,MaxReceivedMessageSize控制了消息的大小,這意味着可以通過服務發送的原始二進制文件大小將小於2GB。

MSDN有一篇很好的文章,講述了通過WCF發送大量數據以及需要注意什麼:Large Data and Streaming

編輯:原來允許的最高值實際上是Int64.MaxValue)