.net WCF。长期运作。正确的方法
WCF服务器上的一个操作大约工作8(!!!)小时。。。 完成后,我需要在客户端上显示此操作的结果 和客户保持这么长时间的联系可以吗? 如果是,24小时运行是否可以? 或者最好使用类似smth的 ?.net WCF。长期运作。正确的方法,.net,wcf,.net,Wcf,WCF服务器上的一个操作大约工作8(!!!)小时。。。 完成后,我需要在客户端上显示此操作的结果 和客户保持这么长时间的联系可以吗? 如果是,24小时运行是否可以? 或者最好使用类似smth的 ? 我试图找到答案,但没有成功。在处理预计需要相当长时间的操作时,异步总是好得多(我个人将操作声明为“慢速运行”的经验法则是,该操作大约需要一个普通用户点击“重新加载”所需的时间)在一个缓慢的网页上,我估计大约是10秒;我在一家公司工作,任何超过半秒的操作都被宣布为“缓慢”) 保持连接打开存在许多问题:
我试图找到答案,但没有成功。在处理预计需要相当长时间的操作时,异步总是好得多(我个人将操作声明为“慢速运行”的经验法则是,该操作大约需要一个普通用户点击“重新加载”所需的时间)在一个缓慢的网页上,我估计大约是10秒;我在一家公司工作,任何超过半秒的操作都被宣布为“缓慢”) 保持连接打开存在许多问题:
- 超时-您必须将其设置为8小时,这相当于出于所有实际目的禁用它们,至少就用户交互而言是如此
- 客户端重新启动-如果您的客户端正在等待服务器的同步响应,则报告结果将无法在客户端重新启动后继续
- 中间进度报告-当一项操作运行数小时时,可能由多个阶段组成。异步化可以让您报告完成百分比和操作过程,因为您的操作要经历多个阶段
这就是为什么您强烈希望在所有长期运行的操作中使用双工通信。谢谢您的回答。据我所知,出于这种目的,存在双工通信。我的操作是异步的。但我想知道,运行持续8小时,客户端始终保持与服务器的双工连接,这样可以吗?或者我应该使用其他机制?我问题中的链接给出了我为什么问这个问题的答案。