【发布时间】:2011-01-03 10:18:45
【问题描述】:
我的运营合同是这样的:
public interface ISearch
{
[OperationContract]
System.IO.Stream DownloadFile(string file);
}
绑定是 nettcpbinding,当我设置缓冲和流传输模式时,wcf 似乎都可以工作。 那么如何测试 wcf 是否在流模式下工作?
【问题讨论】:
我的运营合同是这样的:
public interface ISearch
{
[OperationContract]
System.IO.Stream DownloadFile(string file);
}
绑定是 nettcpbinding,当我设置缓冲和流传输模式时,wcf 似乎都可以工作。 那么如何测试 wcf 是否在流模式下工作?
【问题讨论】:
可能是一种非常粗略的方法,但是,您可以使用 Windows 资源监视器来验证 wcf 是否实际上正在流式传输文件。在这里,我正在从 IIS 中托管的服务流式传输一个大文件。 Read/s 和 Write/s 清楚地表明文件在流式传输时正在被读取,并且没有被缓冲。
【讨论】:
发回一个大于绑定配置中maxReceivedMessageSize 设置的文件(默认为 64KB)。如果 WCF 处于 Buffered 模式,它应该会失败。如果它处于Streamed 或StreamedResponse 模式,它应该可以工作。
【讨论】: