.NET中长时间运行的有状态服务

Asa*_*f R 9 .net wcf workflow .net-4.0

我需要在.NET中创建一个服务,在内存中维护(内部)状态,生成多个线程,并且通常是长时间运行的.有很多选择 -

  • 古老的Windows服务
  • Windows通信服务
  • Windows Workflow Foundation

我真的不知道该选哪个.大多数功能都在此服务使用的库中,因此服务本身非常简单.

一方面,服务主机尽可能接近"简单工作"非常重要,这不包括Windows服务.另一方面,重要的是主服务不会因为没有外部活动而取消服务,这使得WCF变得"可怕".至于WF,它最强大的卖点是能够创建流程,嗯...,工作流程,这是我不需要也不想要的.

总而言之,过多的微软技术让我有点困惑.

对于.NET中有状态,长期运行的服务问题,我很感激有关每个解决方案(或其他我未提及的)的优缺点的帮助

谢谢,
阿萨夫

PS,
我正在使用.NET 4.

编辑:

  • 例如,主持人"简单地工作"的意思是,如果崩溃,我创建的服务将被重新激活.
  • 我想这个问题的原因是我过去曾经创建了Windows服务(我认为它是使用Win32 API的简单C++),而且我不想错过更简单的东西,如果有什么东西的话.

感谢到目前为止的所有回复!
阿萨夫.

编辑2:

我将使用Windows服务,并可能在其中托管WCF服务以允许其他进程与之通信.

谢谢,
阿萨夫

Dav*_*sky 7

根据您的描述,您最好的选择是#1,一个很好的旧Windows服务.您可以为其分配工作,它可以根据需要运行,并且可以生成线程.不确定"简单工作"是什么意思,或者为什么Windows服务不能正常运行.

或者,您可以创建一个简单的控制台应用程序,但您必须自己处理管理(重新启动等).

WCF本质上是基于Web的远程处理,它本身不能处理长时间运行的进程.Workflow Foundation可以处理长时间运行的工作流,但仅限于此.