我基于该示例创建了一个流式 wcf 服务:http: //www.codeproject.com/Articles/112655/Progress-Streamed-File-download-and-Upload-with-Re
使用控制台主机一切正常,上传和写入“并行”运行。但是,如果我在 IIS 中托管服务,则流似乎是在服务器端缓冲的。
- 为什么?有什么区别?控制台主机的服务不可靠吗?!(我需要可靠的流媒体!)
- 如何使用 IIS 主机避免这种情况?
我基于该示例创建了一个流式 wcf 服务:http: //www.codeproject.com/Articles/112655/Progress-Streamed-File-download-and-Upload-with-Re
使用控制台主机一切正常,上传和写入“并行”运行。但是,如果我在 IIS 中托管服务,则流似乎是在服务器端缓冲的。
你怎么知道它的缓冲?代理生成后检查客户端的配置文件。有时代理生成的配置文件的传输模式不正确。
当您开始在客户端上写入文件时,没有看到文件大小有任何块明智的增加吗?
托管不应影响传输模式。
IIS 和控制台之间的唯一区别是管理激活/停用的方式。
我找到了:Getting Streaming in IIS Hosted WCF service to work
我认为这是一个已知问题(使用 .net 4.0 和 iis 7 进行流式传输)。当使用流的 WCF 服务托管在 IIS 中时,ASP.net 在其层缓冲请求。在 ASP.Net 完成之前,该请求甚至不会提交给 WCF。
当使用非 HTTP 传输 IIS 或托管在非 IIS 主机中时,这应该可以工作。
(祖尔菲卡尔·艾哈迈德)
在联系产品团队时 - 他们说它将在 .NET 4.5 中修复,因为它太大而无法作为补丁发布。
它适用于 .NET Framework 4.5