Sticky topshelf服务,拒绝终止

时间:2017-03-06 11:32:18

标签: windows-services topshelf

我有一个包含topshelf服务的项目,部署脚本卸载并重新安装服务器上的新版本。

这种情况很长时间以来一直很好,直到上周因为不明原因而开始行为不端。

现在发生的是命令:

D:/Deploy/current/net40/MyService.exe uninstall

打印出这些结果:

The uninstall is beginning.
2017-03-06T11:21:07 [1] INFO  Topshelf.Runtime.Windows.HostInstaller - Uninstalling MyService service
Removing EventLog source MyService.
Service MyService is being removed from the system...
Service MyService was successfully removed from the system.
Attempt to stop service Halcyon.
The uninstall has completed.

但MyService.exe仍在TaskManager中运行。

结果

此命令:

D:/Deploy/current/net40/MyService.exe install --manual

给出了这个(预期的)错误:

ERROR Topshelf.Hosts.InstallHost - The MyService service is already installed.

我尝试将Topshelf更新到最新版本。 由于另一个奇怪的错误,在部署服务器上手动卸载和终止服务也不起作用。

Beginning the Install phase of the installation.
2017-03-06T11:40:08 [1] INFO  Topshelf.Runtime.Windows.HostInstaller - Installing MyService service
Installing service MyService...
Service MyService has been successfully installed.

The Install phase completed successfully, and the Commit phase is beginning.

The Commit phase completed successfully.

The transacted install has completed.
INFO  MyService.Program - Exiting Main() - exitCode:Ok
INFO  Dozo::Applications::Topshelf - Starting MyService
INFO  Dozo::Applications::Topshelf - Changing MyService to start automatically
INFO  Dozo::Dozo - sc config "MyService" start= auto
[SC] ChangeServiceConfig SUCCESS
INFO Dozo::Applications::Topshelf - Starting MyService
INFO  Dozo::Dozo - net start "MyService"
The MyService service is starting........
The MyService service could not be started.

我无法弄清楚为什么会这样。 我尝试添加更多错误记录但没有任何结果。

以前有人这么做过吗?任何想法如何让这个“粘性”服务即使在卸载后也停止运行?

由于

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用Windows命令删除服务?

打开命令提示符并输入

sc delete <service-name>

答案 1 :(得分:0)

也许有点晚了,但我希望其他人会觉得有用。

遇到此类问题时,应在Topshelf配置中查看Stop方法。确保所有物品都放在其中。像关闭各种连接一样,并放置文件句柄。这种东西可以使您的服务“很粘”。