C# - 如何在WCF服务中读取流

Nic*_*las 0 c# wcf stream

我有一个WCF服务,我想发送一个日志文件并在服务器上处理它.合同是:

[OperationContract]
void LogFile(Stream file);
Run Code Online (Sandbox Code Playgroud)

我在端点中使用StreamedRequest.

我遇到的问题是我无法找到一种方法来读取服务中的流.

当我调试调用时,我看到Stream是一个实例:

System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream
Run Code Online (Sandbox Code Playgroud)

从客户端我发送一个MemoryStream.

那么......我怎么能读到这个流?

谢谢.

Edit1:即时通讯使用:

        Stream serviceStream = new MemoryStream();
        byte[] buffer = new byte[10000];
        int bytesRead = 0;
        do
        {
            bytesRead = file.Read(buffer, 0, buffer.Length);
            serviceStream.Write(buffer, 0, bytesRead);
        } while (bytesRead > 0);
        serviceStream.Position = 0;
Run Code Online (Sandbox Code Playgroud)

读取流,什么都没有,总是0

Nic*_*las 5

我的不好,在客户端我忘了将流的位置设置为0,所以服务正在获取流的结尾位置