1

这可能听起来很疯狂,但这是一个真正的问题:我有一个 ISV 提供的 Windows 服务,我无法更改。服务中存在一个错误,它没有“清理”一些在启动时应该执行的数据。

作为一种解决方法,在供应商可以修复错误之前,我希望在此问题服务启动之前始终运行另一个进程或脚本。

例如:我可以创建第二个“监视器”服务,该服务与具有服务依赖关系的问题服务相关联。第二个服务将在允许启动问题服务之前执行此解决方法/清理。但这似乎是解决一个简单问题的大锤。还有其他人对更简单的解决方案有想法吗?

解决方法代码很简单,例如可以存在于 PowerShell 脚本中。

4

2 回答 2

1

Create a new service that does what you need, then force a dependency on it.

于 2010-10-18T18:21:08.403 回答
0

您应该查看我们的Service Protector 应用程序,该应用程序可以在启动另一个服务之前运行预启动脚本。这也可能是矫枉过正,但有时最好购买有针对性的实用程序,而不是将您的编程时间投入一次性/一次性解决方案。

在任何情况下,如果您的新服务在完成清理工作之前不会将自己声明为“已启动”,那么您编写另一个服务并强制执行依赖项的解决方案应该可以解决问题。如果没有,Windows 可能会过早启动您的实际服务。

祝你好运。

于 2010-11-04T14:40:33.217 回答