在app.config中指定Windows服务依赖项?

时间:2011-06-07 14:10:31

标签: .net windows-services installation dependencies

我正在创建一个Windows服务,它取决于我之前启动的SQL Server服务。我知道你可以通过sc从代码,Windows GUI或命令行添加这样的依赖关系,但是可以在服务的app.config中指定这样的依赖关系吗?有没有其他方法来设置服务依赖?

1 个答案:

答案 0 :(得分:1)

就app.config而言,没有什么可以放在那里会延迟你的服务启动,直到另一个服务运行。您必须在操作系统级别(scregistry)执行此操作,而不是在服务级别(app.config)执行此操作。

一般而言,编写服务期望其他服务正在运行会使您的服务变得脆弱。如果本地系统管理员从计算机中删除SQL Server或将其配置为默认不运行,该怎么办?在这两种情况中的任何一种情况下,您的服务都将 从不 运行。

相反,我建议您以不依赖其他服务的方式编写服务,即使它需要该服务才能完成任何工作。例如,如果您的服务基于远程用户请求查询数据库并且SQL Server当时未运行,则抛出异常,然后可以向用户显示该异常。

或者,当您安装服务时,在此时添加对SQL Server的依赖如果,您可以合理地期望SQL Server在那里。