我們已經構建了一個WCF服務,設置爲一個SOAP服務。它從數據庫讀取數據,組裝響應並將其返回給客戶端。因爲它從數據庫中查詢它需要的所有數據,將整個響應組裝到內存中並將其返回給客戶端,如果數據量很大,則可能會有相當大的內存需求。如何處理大型WCF響應?
基本上,客戶端正在從數據庫請求一個特定的記錄,其中包含一個blob,我們無法控制它的大小。我們預計數據的大小可能從10k到3mb左右。我們可以使用的技術是我們可以將數據從數據庫中流出並傳輸到WCF響應中,因此我們不必一次加載全部3mb的內存。
編輯:
本來,我想這可能是 How to handle large file uploads via WCF?重複,但解決方案需要使用流作爲在OperationContract的參數。在我的情況下,雖然我需要我的請求的參數是一個複雜的對象,這將反映在服務的結果WSDL中。
[ServiceContract]
public interface IFileUpload
{
[OperationContract]
bool UploadFile(Stream stream);
}
可能重複[如何處理通過WCF的大文件上傳?](http://stackoverflow.com/questions/1935040/how-to-handle-large-file-uploads-via-wcf) – Jeremy 2013-03-05 20:32:39