2011-07-18 98 views
2

我對WCF相當陌生,我試圖弄清楚流媒體如何工作。我基本上有一個Web服務,應該從數據庫返回一些信息。返回的數據可能非常大。我想知道是否任何人都可以指出一個很好的例子,如何做到這一點。如果我正確理解事情,我的Web服務方法應該返回一個流對象。但我怎麼實際上傳遞數據到流?這只是序列化每個對象並將其寫入流的問題?如果是這樣,序列化到底會如何完成?再次,一個簡單的例子將非常感激。如何使用WCF服務返回大型數據集的流?

回答

3

您應該將綁定的TransferMode屬性設置爲Streamed值,並像您一樣使用WCF服務。 WCF基礎架構將自動完成所有工作。

這是一個更加有用的鏈接:

Streaming Message Transfer

+0

所以,我不需要返回一個Stream對象?例如,如果我的Web服務正在返回一個大的列表,這是否仍然有效? –

+0

沒有必要返回流。它也將與大型列表一起工作。我還添加了一個新的鏈接到我的答案。 – platon

+0

請注意,將Binding的TransferMode轉換爲流傳輸會限制服務的接口。將流式傳輸方法放在自己的接口中並將其餘的方法保留在保持緩存的接口中(這是默認設置)可能是一個好主意。 –

0

實際上,我很revist架構,從任何服務(WCF,ASMX等)返回的結果集大是一個架構的氣味。

很少有可接受的理由從服務返回大型結果集。解決方案是更多/更好的過濾和實現pagine的組合。如果您只是在數據庫中放置簡單的服務單板,請查看WCF數據服務,因爲過濾和分頁內置於框架中。否則,看看WCF數據服務,看看他們在做什麼,並模仿你的服務。

相關問題