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

.net 是否在app.config中指定Windows服务依赖项?,.net,windows-services,installation,dependencies,.net,Windows Services,Installation,Dependencies,我正在创建一个Windows服务,它将依赖于在我之前启动的SQL Server服务。我知道您可以通过sc从代码、Windows GUI或命令行添加此类依赖项,但是否可以在服务的app.config中指定此类依赖项?是否有其他方法来设置服务依赖项?就app.config而言,您不能在其中添加任何东西,以延迟服务的启动,直到另一个服务运行之后。您必须在操作系统级别(或)执行此操作,而不是在服务级别(app.config)执行此操作 不过,一般来说,编写服务时期望另一个服务正在运行,这会使您的服务变得

我正在创建一个Windows服务,它将依赖于在我之前启动的SQL Server服务。我知道您可以通过
sc
从代码、Windows GUI或命令行添加此类依赖项,但是否可以在服务的
app.config
中指定此类依赖项?是否有其他方法来设置服务依赖项?

就app.config而言,您不能在其中添加任何东西,以延迟服务的启动,直到另一个服务运行之后。您必须在操作系统级别(或)执行此操作,而不是在服务级别(app.config)执行此操作

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

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


或者,当您安装服务时,如果可以合理地预期SQL Server会出现,请在此时添加对SQL Server的依赖关系。

davis该服务应该立即启动并轮询数据库,而不是连接以响应某些内容。如果不添加对SQL Server的依赖关系,您将如何编写它?请不要误解。添加依赖项没有什么错,但是仅仅依赖依赖依赖项是不够健壮的,因为SQL Server总是有可能由于不可预见的情况而无法启动。在这种情况下,我假设您仍然希望您的服务运行。如果您的服务从一开始就进行轮询,只需添加适当的异常处理。如果发生异常,请等待一段时间,然后再次轮询。即使您添加了对SQL Server的依赖,我还是建议您这样做。昵称上没有问题。我知道你的意思