WCF长时间运行的过程

时间:2013-09-30 15:59:35

标签: c# wcf

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

我尝试了不同的方法:

  1. 服务器是同步的,客户端使用另一个保持活动的进程进行同步调用
  2. 服务器是同步的,客户端使用可以关闭的相同进程进行异步调用
  3. 服务器是异步的,客户端使用相同的进程进行同步调用
  4. 如果客户端关闭与服务器的通信,服务器会终止执行,因此它无法完成任务吗?

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

    使用Task类在服务器中执行代码是一件好事吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

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

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