WCF。长期运营。正确的方法

时间:2012-12-24 13:28:33

标签: .net wcf

WCF服务器上的一项操作大约工作8(!!!)小时...... 我需要在完成后在客户端上显示此操作的结果。

与客户保持这么长时间的连接是否可以? 如果是的话,24小时运行会好吗? 或者最好使用smth之类的   this

我试图在SO上找到答案,但没有成功......

1 个答案:

答案 0 :(得分:2)

在处理预计需要相当长时间的操作时,异步总是好得多(我个人的经验法则是宣布操作“慢速运行”)操作需要花费大致平均所需的时间用户在慢速网页上点击“重新载入”,我估计大约十秒;我在一家公司工作,任何超过半秒的操作被宣布为“慢”)。

保持连接打开存在许多问题:

  • 超时 - 您必须将它们设置为8小时,这相当于为了所有实际目的而禁用它们,至少就用户交互而言
  • 客户端重新启动 - 如果您的客户端正在等待来自服务器的同步响应,则报告结果将无法在重新启动客户端后继续存在
  • 中级进度报告 - 当某个操作运行几个小时后,它可能包含多个阶段。通过异步操作,您可以报告完成百分比和一般操作过程,因为您的操作经历了多个阶段。

这就是为什么您应该非常喜欢在所有长时间运行中使用双工通信。