我已经创建了一个窗口服务并设置了一些依赖项,例如 MSMQ、MSSQLSERVER 等。一切运行良好。但我需要为我的服务发送另一个依赖项。即互联网连接。我的服务负责发送电子邮件。我的服务器启动后,我的服务也会启动,它会查找是否有任何内容要发送,如果有,它就会开始发送电子邮件,如果在发送过程中无法连接到互联网,它就无法发送电子邮件。
所以我想我也应该将服务依赖项设置为 Internet 连接。我已经通过编辑注册表值将窗口服务依赖项设置为 MicrosoftSQL Server 和 Microsoft Message Queuing。
通过添加名为“DependOnService”的新多字符串值,类型“REG_MULTI_SZ”以及我的服务所依赖数据的服务的空格分隔名称。
对于 Microsoft SQL Server,我将值设置为“MSSQLSERVER”,但我不知道需要设置依赖关系的互联网服务的名称。
我该怎么做,请帮帮我,谢谢
答案1
由于解决方案是程序化的,因此不应该迁移此服务。在尝试发送消息之前,请让您的服务测试 Internet 连接。如果没有连接(例如,ping 一个可以信赖的 IP 地址,例如您的 ISP 网关),请暂停一会儿,然后重试。
答案2
我在使用 Windows 服务时也遇到了同样的问题,该服务需要监听尚未准备好的 IP 地址。我添加了对 Netman(网络连接)和 SQL Server(该服务也依赖于它)的依赖。我没有使用注册表,而是使用了命令行,如下所示:
sc \\YOURSERVERNAME config YOURSERVICENAME depend= NETMAN/MSSQLSERVER
请务必替换您的服务器名称和服务名称。如果成功,您应该会看到:
[SC] ChangeServiceConfig SUCCESS
我正在等待下次每周重启以确认它有效,但它应该可以!