【问题标题】:wcf tcp async streamed is possible?wcf tcp 异步流式传输是可能的吗?
【发布时间】:2012-06-26 11:19:23
【问题描述】:

我有一个使用 tcp 的服务,我所有的方法都是异步的,所以我实现了 Begin/End 方法(我使用 C# 4.0)。

如果我只修改了我的 app.confing 以将传输模式设置为 Streamed 而不是 Buffered,当我在客户端进行异步调用时,应用程序将永远等待响应。但是,如果我将传输模式更改为缓冲,那么它工作正常。

我还注意到我需要在缓冲传输模式下使用可靠会话,因为当我启动应用程序时,我收到错误 10061,即目标服务主动拒绝连接。

我知道如果我想使用流传输模式,我不需要禁用 de可靠会话,所以我想问是否可以将流传输模式与异步方法一起使用。

谢谢。

编辑:我正在尝试传输一个 5MB 的文件。但是,这是一个测试,因为在生产中,文件可能会更大,所以我想为将来的需要做好准备。

【问题讨论】:

  • 您要传输的数据的大小和类型是多少?
  • 我编辑了第一篇文章,提供了更多详细信息。

标签: .net wcf tcp


【解决方案1】:

答案是肯定的,您可以在异步方法上使用流传输模式。下面的链接将带您进入 MSDN 文章,该文章描述了使用异步方法实现流式传输功能所必须采取的必要步骤。

以下帖子应该澄清您的情况:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/4893f3c9-2a38-462f-b49c-afa833a3760a/

另外,另一篇文章通过代码示例详细说明了如何创建自托管 REST WCF 服务,该服务提供使用流模式和异步方法上传/下载大文件的功能。您可以使用基于 SOAP 的服务来实现相同的目的。与配置相关的事情是将您的传输模式设置为流式传输并增加超时值。如需完整的实施示例,请查看此链接:http://www.level533.com/2010/11/uploading-large-files-to-self-hosted-wcf-rest-service/

P.S:我无法提供此答案中的所有内容,否则这将成为一篇成熟的文章。

【讨论】:

  • 如果链接中断(他们经常这样做),仅包含链接的答案将变得毫无意义。您能否总结一下链接的内容并更新您的回复?
猜你喜欢
  • 2013-08-14
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多