2013-09-30 154 views
3

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

我尝试不同的方法:

  1. 服务器是同步的,客户端发出的同步调用使用另一个进程活路
  2. 服务器是同步的,在客户端让使用相同的过程的异步调用可能被关闭
  3. 服务器是异步,客户端使得使用相同的过程

同步呼叫如果客户端关闭与SERV通信呃,服务器杀死执行,所以它不能完成任务?

哪种避免此情况的最佳方法是?

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

+0

避免什么情况?如果客户端断开连接,您是否希望服务器停止执行? –

+0

无论如何,我想继续完成任务 –

回答

-1

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

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

0

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