【发布时间】:2010-10-07 19:47:33
【问题描述】:
我正在通过 WCF 发送大文件,并且我正在使用 transferMode="Streamed" 以使其正常工作,并且工作正常。
问题是有时这些文件太大了,我想给客户一些关于进度的反馈。
有没有人有一个关于如何完成这个的解决方案/想法?
编辑:如果我这样做了,我不会命令在任何一方(客户端或服务器)读取文件,我可以就流的读取功能提供反馈。
EDIT2:我的部分代码帮助其他人理解我的问题
这是我的合同
[OperationContract]
FileTransfer Update(FileTransfer request);
这是 FileTransfer 的定义
[System.ServiceModel.MessageContractAttribute(WrapperName = "FileTransfer", WrapperNamespace = "http://tempuri.org/", IsWrapped = true)]
public class FileTransfer : IDisposable
{
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "dummy", Order = 0)]
public Stream FileByteStream;
public void Dispose()
{
if (FileByteStream != null)
{
FileByteStream.Close();
FileByteStream = null;
}
}
}
所以,在我的服务(托管在 IIS 上)中,我只有这样的东西:
request.FileByteStream;
WCF 本身会读取流,对吗?
我希望这可以帮助人们了解我的问题...如果您需要更多信息,请告诉我
【问题讨论】:
-
你怎么能不指挥阅读? WCF 不会自行读取流,您是否为此使用了第三方组件?
标签: wcf stream large-files