Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF。长期运作。正确的方法_.net_Wcf - Fatal编程技术网

.net WCF。长期运作。正确的方法

.net WCF。长期运作。正确的方法,.net,wcf,.net,Wcf,WCF服务器上的一个操作大约工作8(!!!)小时。。。 完成后,我需要在客户端上显示此操作的结果 和客户保持这么长时间的联系可以吗? 如果是,24小时运行是否可以? 或者最好使用类似smth的 ? 我试图找到答案,但没有成功。在处理预计需要相当长时间的操作时,异步总是好得多(我个人将操作声明为“慢速运行”的经验法则是,该操作大约需要一个普通用户点击“重新加载”所需的时间)在一个缓慢的网页上,我估计大约是10秒;我在一家公司工作,任何超过半秒的操作都被宣布为“缓慢”) 保持连接打开存在许多问题:

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

和客户保持这么长时间的联系可以吗? 如果是,24小时运行是否可以? 或者最好使用类似smth的 ?


我试图找到答案,但没有成功。

在处理预计需要相当长时间的操作时,异步总是好得多(我个人将操作声明为“慢速运行”的经验法则是,该操作大约需要一个普通用户点击“重新加载”所需的时间)在一个缓慢的网页上,我估计大约是10秒;我在一家公司工作,任何超过半秒的操作都被宣布为“缓慢”)

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

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

这就是为什么您强烈希望在所有长期运行的操作中使用双工通信。

谢谢您的回答。据我所知,出于这种目的,存在双工通信。我的操作是异步的。但我想知道,运行持续8小时,客户端始终保持与服务器的双工连接,这样可以吗?或者我应该使用其他机制?我问题中的链接给出了我为什么问这个问题的答案。