停止Windows服务会使进程继续运行

停止Windows服务会使进程继续运行

我有一组 Windows 服务,最近我将它们移到了一个新机器上。这些是使用 installutil 应用程序安装的 .net 应用程序 (v4.0)。现在这些应用程序的情况是,当它们被远程停止或通过服务管理器 UI 停止时,与该服务相关的进程不会终止。我意识到可能会出现一些延迟,但即使经过很长时间的等待,当我通过任务管理器查看时,这些服务似乎仍在运行。当重新启动服务时,exe 进程的第二个实例将启动。

鉴于这是一个新盒子,我想知道盒子上是否有其他东西在运行,从而阻止这种情况的发生。

这在旧机器上不会重现,而且这台机器上的其他服务似乎也没有发生这种情况。

关于如何追踪正在发生的事情,您有什么想法吗?

答案1

是的,您的 .NET 代码需要修复。它无法正确处理服务停止请求。我知道它在您的旧服务器上“运行良好”,但我坚持我的说法。:P

首先,检查事件日志中是否存在未处理的 .NET 异常。如果这无济于事,请检查代码。

你的代码中可能有类似这样的方法

protected override void OnStop() { ... }

我将开始在那里的代码中添加一些日志并尝试找出失败的地方。

相关内容