2016-03-03 69 views
1

我希望這是一個簡單的問題。從服務布料演員/服務中返回wcf流

我想創建一個處理包含數千個字段的動態報告的服務集羣。根據我所知道的,我不能使用流作爲可靠演員或服務的返回類型。我唯一的選擇是返回序列化的字節數組,還是將結果寫入其他地方並指示客戶端查詢該資源,還是我錯過了某些內容?

謝謝

回答

0

它取決於您在服務中使用的通信堆棧。服務本身對通信協議是不可知的。服務的實現可以插入任何通信棧:Web API,WCF,套接字,無關緊要。

Reliable Actors是一個服務的特殊實現,作爲一個服務實現它指定了一個通信棧。在通信堆棧中,請求/響應有效載荷必須是DataContract可序列化的,因此不能在那裏返回流。否則,如果您使用WCF與您的服務進行通信,那麼您受WCF可以執行的操作的限制。

如果您正在使用服務遠程處理(您的服務實現IService,並且您使用ServiceProxy遠程調用它的方法),則無法返回服務方法的流。你需要返回一些DataContract可序列化的東西。

如果您在服務中使用Web API,則可以使用控制器操作方法獲取HTTP響應流,然後將數據流式傳輸回去,而無需爲其分配字節緩衝區。

或者你可以實現你自己的溝通協議,並做你想做的任何事情。