我正在尝试部署 Windows 服务,但不太确定如何正确执行。我一开始将其构建为控制台应用程序,现在我已将其转变为 Windows 服务项目,只需从服务中的 OnStart 方法调用我的类。
我现在需要在没有 Visual Studio 的服务器上安装它,如果我理解正确的话,这意味着我不能使用 InstallUtil.exe,而必须创建一个安装程序类。这是正确的吗?
我确实看过之前的问题,Install a .NET windows service without InstallUtil.exe ,但我只是想确保我理解正确。
如果我创建问题的已接受答案链接到的类,下一步是什么?上传MyService.exe和MyService.exe.config到服务器,双击exe文件,Bob是我叔叔?
服务只会安装在一台服务器上。
最佳答案
我知道这是一个非常古老的问题,但最好用新信息更新它。
您可以使用 sc 安装服务命令:
安装服务.bat:
@echo OFF
echo Stopping old service version...
net stop "[YOUR SERVICE NAME]"
echo Uninstalling old service version...
sc delete "[YOUR SERVICE NAME]"
echo Installing service...
rem DO NOT remove the space after "binpath="!
sc create "[YOUR SERVICE NAME]" binpath= "[PATH_TO_YOUR_SERVICE_EXE]" start= auto
echo Starting server complete
pause
使用 SC,您还可以做更多的事情:卸载旧服务(如果您之前已经安装过它),检查是否存在同名服务...甚至将您的服务设置为自动启动。
众多引用文献之一:creating a service with sc.exe; how to pass in context parameters
我已经通过这种方式和 InstallUtil
完成了。我个人觉得使用 SC 更清洁,对您的健康也更好。
关于c# - 安装没有 InstallUtil.exe 的 windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856705/