我有一个包含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.
我无法弄清楚为什么会这样。 我尝试添加更多错误记录但没有任何结果。
以前有人这么做过吗?任何想法如何让这个“粘性”服务即使在卸载后也停止运行?
由于
答案 0 :(得分:1)
您是否尝试过使用Windows命令删除服务?
打开命令提示符并输入
sc delete <service-name>
答案 1 :(得分:0)
也许有点晚了,但我希望其他人会觉得有用。
遇到此类问题时,应在Topshelf配置中查看Stop
方法。确保所有物品都放在其中。像关闭各种连接一样,并放置文件句柄。这种东西可以使您的服务“很粘”。