3

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

我尝试了不同的方法:

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

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

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

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

4

2 回答 2

0

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

于 2013-11-19T14:04:57.520 回答
-1

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

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

于 2013-10-18T19:40:30.373 回答