WCF 长时间运行的进程

本文关键字:进程 运行 长时间 WCF | 更新日期: 2023-09-27 18:33:30

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

我尝试了不同的方法:

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

如果客户端关闭与服务器的通信,服务器会终止执行,因此它不会完成任务?

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

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

WCF 长时间运行的进程

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

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

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