Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
C# 具有工作线程的WCF服务_C#_Multithreading_Wcf_Iis_Microsoft Web Deploy - Fatal编程技术网

C# 具有工作线程的WCF服务

C# 具有工作线程的WCF服务,c#,multithreading,wcf,iis,microsoft-web-deploy,C#,Multithreading,Wcf,Iis,Microsoft Web Deploy,我开发了一个WCF服务,根据请求,它将创建一个工作线程,并开始处理大量数据的有时是广泛的过程 我需要能够使用WCF服务的这种处理能力和RESTful能力 示例:全局存储线程,并能够在RESTful调用中访问它 但是,据我所知,不建议在IIS中执行此操作,IIS将终止长期运行的应用程序,建议将其作为Windows服务承载的WCF服务运行 然而,我们依赖于通过VisualStudio使用Web部署/发布的能力,这是我们开发过程中不可或缺的一部分 我怎样才能两全其美呢 Windows服务仍然存在相同的

我开发了一个WCF服务,根据请求,它将创建一个工作线程,并开始处理大量数据的有时是广泛的过程

我需要能够使用WCF服务的这种处理能力和RESTful能力

示例:全局存储线程,并能够在RESTful调用中访问它

但是,据我所知,不建议在IIS中执行此操作,IIS将终止长期运行的应用程序,建议将其作为Windows服务承载的WCF服务运行

然而,我们依赖于通过VisualStudio使用Web部署/发布的能力,这是我们开发过程中不可或缺的一部分


我怎样才能两全其美呢

Windows服务仍然存在相同的基本问题,因为最终您必须部署新代码或重新启动服务器(或者,但愿不会发生崩溃!)。该服务将需要关闭

您可以通过Windows服务控制何时发生这种情况,这是一件好事。但从根本上说,你必须有一个概念,在这种情况下,你的长期工作应该会发生这种情况

我认为与Windows服务相比,经过良好调优的IIS应用几乎没有缺点。没有办法不间断地运行长期运行的工作


处理这个事实。例如,重新启动工作并将其包装到事务中,以便任意中断不会导致数据损坏。

可以接受计划的停机时间,但不能接受随机故障。当用户开始工作时,它需要在后台运行直到完成。你是说Windows服务托管的WCF服务将继续运行而不会出现问题,直到开发导致其他问题?我能告诉你什么?确保永远不会有bug:)您几乎可以消除IIS和WS中所有计划外的关机原因。阅读常见问题,并尽可能地解决它们。如果有人说
new Thread(()=>((string)null).ToLower())
,并且进程在没有通知的情况下被终止,您仍然需要对这种情况做出响应。或者,只是长时间运行的工作结束了,这似乎也不符合你的喜好。这些事情都会发生。为了便于开发,您能否建议一种方法,阻止IIS在其线程运行时循环使用我的WCF服务?您最好做的就是搜索()。也可以搜索“wcf背景工作”。并在生产条件下进行测试。长时间工作8天,确保它仍然有效。谢谢你的建议。