【发布时间】:2010-03-11 16:56:58
【问题描述】:
我需要在 .NET 中创建一个服务,该服务在内存中维护(内部)状态,产生多个线程并且通常是长时间运行的。有很多选择 -
- 老旧的 Windows 服务
- Windows 通信服务
- Windows 工作流基础
我真的不知道该选哪个。大部分功能都在此服务使用的库中,因此服务本身相当简单。
一方面,服务主机尽可能接近“简单工作”非常重要,这不包括 Windows 服务。另一方面,重要的是服务不会因为没有外部活动而被主机取消,这使得 WCF 有点“可怕”。至于 WF,它最大的卖点是能够将流程创建为,嗯...,工作流,这是我不需要也不想要的东西。
总而言之,过多的微软技术让我有点困惑。
对于每个解决方案(或我未提及的其他解决方案)的优缺点,我很感激帮助解决 .NET 中的有状态、长时间运行的服务问题
谢谢,
阿萨夫
附:
我正在使用 .NET 4。
编辑:
- 我所说的主机“简单工作”是指,例如,我创建的服务在崩溃时会重新激活。
- 我想这个问题的原因是我过去创建了 Windows 服务(我认为它是用 Win32 API 用纯 C++ 编写的),如果有的话,我不想错过更简单的东西作为事物。
感谢迄今为止的所有回复!
阿萨夫。
编辑 2:
我将使用 Windows 服务,并可能在其中托管 WCF 服务以允许其他进程与之通信。
谢谢,
阿萨夫
【问题讨论】:
-
这是一个很好的问题,+1 和收藏
-
如果您还没有尝试在 .NET 中创建 Windows 服务,我建议您尝试一下。它实际上并不比控制台应用程序复杂多少,并且有很多方法可以处理重启和信号。
标签: .net workflow .net-4.0 wcf