簡體   English   中英

如何通過WCF流​​傳輸MemoryStream

[英]How to transfer MemoryStream via WCF Streaming

我打算通過WCF Streaming傳遞MemoryStream,但似乎沒有用,但是當我稍微更改代碼以傳遞FileStream時,它正在工作。 實際上,我的目的是傳遞大量業務對象(可序列化)。 我正在使用basicHttpBinding。 非常感謝您的建議!

編輯:問題的症狀是傳入的流是空的。 沒有錯誤也沒有例外。

你沒有提供很多細節,但是,我幾乎可以肯定我知道這個問題是什么,因為我已經看到了很多事情。

如果您將某些內容寫入MemoryStream以便作為WCF服務操作的結果返回該內容,則需要在返回之前手動將流重置為其開頭。 WCF只會從當前位置讀取流,因此如果該位置尚未重置,則返回空流。

這至少可以解釋你所描述的問題。 希望這可以幫助。

這里有一些示例代碼:

    [OperationContract]
    public Stream GetSomeData()
    {
        var stream = new MemoryStream();
        using(var file = File.OpenRead("path"))
        {
            // write something to the stream:
            file.CopyTo(stream);         
            // here, the MemoryStream is positioned at its end
        }
        // This is the crucial part:
        stream.Position = 0L;
        return stream;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM