【问题标题】:WCF long running processWCF 长时间运行的进程
【发布时间】:2013-11-19 22:04:57
【问题描述】:

我必须使用 WCF 服务启动一个长时间运行的进程,现在我不需要结果,但我可能很快就会需要它,所以假设两种情况,执行一个函数的操作。

我尝试了不同的方法:

  1. 服务器是同步的,客户端使用另一个保持活动状态的进程进行同步调用
  2. 服务器是同步的,客户端使用可以关闭的同一进程进行异步调用
  3. 服务器是异步的,客户端使用相同的进程进行同步调用

如果客户端关闭了与服务端的通信,服务端会终止执行所以它没有完成任务?

避免这种情况的最佳方法是什么?

使用Task类在服务端执行代码是好事吗?

【问题讨论】:

  • 避免什么情况?如果客户端断开连接,您是否希望服务器停止执行?
  • 我还是想继续任务

标签: c# wcf


【解决方案1】:

解决方案可以使用 OperationContractAttribute 中的IsOneWay 属性。

【讨论】:

    【解决方案2】:

    我不认为 WCF 是适合您的解决方案,在 WCF 中,一旦连接关闭,远程过程将被视为失败并因此终止。

    我建议您采用不同的方法,尝试实现客户端-服务器请求-响应类型的通信,这似乎更适合您正在描述的情况,但如果您要说明您正在使用的场景服务器会提供更好的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多