手动停止服务后,该服务会自动重新启动。

3
我在C#.NET中创建了一个持续运行的Windows服务。现在,当我从services.msc停止它时,最初显示已停止,但过一段时间后刷新services.msc时,它又显示为已启动。同时,我也在任务管理器中检查了同一时间,看到我的应用程序的exe被杀死,但又自动重新启动。
请帮忙解决。

你在代码中如何处理 onStop 事件? - Oskar Kjellin
理论上不应该发生这种情况。但我们也不知道在 OnStop 事件中发生了什么。你能否尝试创建一个简单的“Hello World”服务并比较结果? - Vivek
目前我在onStop事件上没有做任何事情。 - Snowill
如果您将启动类型更改为手动,会发生什么?请发布一些代码。 - Oskar Kjellin
2个回答

4
如果您查看服务的属性,会发现有一个名为“恢复”的选项卡。也许在此页面上配置了一些自动重新启动服务的设置。
也许您可以使用进程监视器来找出更多关于谁启动了您的服务的信息?

我在哪里寻找你所说的“恢复”选项卡?在我创建的服务属性中没有找到它。 - Snowill
@Snowill 开始->控制面板->管理工具->服务。右键单击特定的服务,点击属性,顶部的一个选项卡应该说“恢复”。 - AndrewC
1
对于指定的所有三种故障类型,它都会显示“不采取任何行动”。 - Snowill
我尝试使用C#创建一个示例Windows服务,但仍然遇到同样的问题。当我从“服务”启动服务时,它可以正常启动,但是当我尝试手动从“服务”停止它时,它会停止,但立即重新启动。 - Snowill
1
我认为恢复只适用于服务意外停止(即崩溃)的情况。手动停止进程是正常的。我能想到的是另一个进程正在请求重新启动该服务。 - Chris Smith
好的,这对我很有帮助。我将恢复选项设置为“在第一次停止时重新启动服务”,即使我禁用了该服务,它也会执行。非常感谢! - Tanaka Saito

0

我想这可能与操作系统有关。我在Win2k3上部署了我的服务,它完美地启动并可以通过Services.msc停止。我之前尝试在WinXP上部署该服务。如果有其他人遇到类似的问题,请告诉我。


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