.NET Windows服务 - 一个项目中有多个服务

22

目前,我有一个与Windows Service相关的项目。我还创建了另一个“设置项目”,它安装Windows Service。

我的问题是:我能否将另一个Windows Service添加到同一项目中?(这样,我就可以使用1个安装程序,并更轻松地在服务之间共享一些代码)如果可以,那么当一个服务遇到错误时,两个服务都会停止,还是它们会独立于彼此出现错误?

每个项目编写一个服务和在一个项目中多个服务之间是否存在其他区别?

3个回答

9

是的,您可以在同一个项目中拥有多个服务。虽然它们都使用相同的exe文件,但它们被加载到不同的内存空间中并且彼此独立运行。


所以说:相同的安装,但是分开错误处理?将它们分成不同的项目,唯一的好处是可以单独安装一个而不安装另一个吗? - Boris
如果您有需要运行但彼此不影响的不同进程,则可以在保持另一个进程开启的同时关闭某个服务。我们有一些共享部分相同代码但具有不同功能且在不同时间段内运行的服务。通过将它们分离,我们无需担心处理独立的线程。这并不一定适用于每种情况,但是这是可能的。 - kemiller2002

8

0

我是一个开发者,为一个名叫 Daemoniq 的开源 Windows 服务托管框架工作。它的特点之一是在一个进程中运行多个服务。您可以从 http://daemoniq.org 下载它。

当前功能包括:

  • 通过 CommonServiceLocator 实现容器无关的服务定位
  • 通过 app.config 设置常见的服务属性,如 serviceName、displayName、description 和 serviceStartMode
  • 在同一进程中运行多个 Windows 服务
  • 通过 app.config 设置恢复选项
  • 通过 app.config 设置依赖的服务
  • 通过命令行设置服务进程凭据
  • 通过命令行安装、卸载、调试服务

谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接