我有一个基本的 C# 控制台应用程序,我想将其作为 Windows 服务运行。
我已经使用 sc create
创建了 Windows 服务。这工作正常,我可以在 services.msc
下看到我的服务。当我尝试启动此服务时,出现以下错误:
Could not start the PROJECT service on Local Computer. Error 1053: The service did not respond to the start or control request in a timely fashion.`
我了解到这可能是因为服务代码的执行时间超过 30000 毫秒。因此,我删除了大部分代码,几乎没有执行任何代码。但同样的错误仍然存在。
我正在为这个项目使用 .NET 3.5。
什么会导致这种情况?
最佳答案
您不能只采用任何控制台应用程序并作为 Windows 服务运行。首先,您需要实现继承自 ServiceBase
的服务类,然后在入口点 (Main
) 中,您需要使用 ServiceBase.Run(new你的服务())
。在您的服务类中,您需要定义服务开始和结束时发生的情况。
理想情况下,您也应该将 ServiceInstaller 添加到程序集中。这样您就可以预设服务属性,并使用 installutil.exe 安装服务。
关于c# - 将 C# 控制台应用程序作为 Windows 服务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222020/