我使用Visual Studio 2008开发了一个Windows服务。我想在没有安装Visual Studio但安装了.NET 3.5的机器上安装该服务。
通常,InstallUtil.exe将用于安装Windows服务,但.NET 3.5中不提供InstallUtil.exe实用程序。当我尝试使用.NET 2.0安装该服务时,该服务将显示在服务列表中,但在启动服务时,Windows服务错误1053即将到来。我们如何避免这个问题并成功安装服务?
答案 0 :(得分:8)
这实际上非常简单,就像几天前我做的那样。
因此,在您的服务项目中,您希望:
现在您需要制作一个安装项目。最好的办法是使用设置向导。
现在您需要编辑安装程序以确保包含正确的输出。
现在只需构建安装程序,它将生成一个MSI和一个setup.exe。选择您要用于部署服务的任何一个。
答案 1 :(得分:4)
对于.Net 2.0和VS2005,有一个Microsoft KB。该程序在.Net 3.5和VS2008中完全相同。
http://support.microsoft.com/kb/317421
这是一篇更好的文章,图片更清晰。 (有时KB不像你在其他地方找到的教程那么友好。)
http://aspalliance.com/1316_Working_with_Windows_Service_Using_Visual_Studio_2005.3
答案 2 :(得分:1)
如果您一直使用InstallUtil.exe来安装Windows服务,那么这意味着您已将ProjectInstaller组件添加到您的服务中。所有InstallUtil.exe都使用反射来查找服务中嵌入的安装程序组件并在其上执行一些方法。因此,您可以修改Windows服务以自行安装和卸载,即您不再需要依赖目标计算机上可用的InstallUtil.exe 。我已经成功使用了几个月了。只需按照我提供的here步骤操作即可。这个想法最初属于Marc Gravell和post。
答案 3 :(得分:0)
消息:
“错误1053:服务未响应启动或控制 请及时提出要求。“
通常是对启动Windows服务的问题的一般响应。你应该做的是检查事件日志,你可能会发现阻止服务启动的真正的错误。