Windows服务未显示在已安装的服务中(因此无法启动)

时间:2012-05-23 08:37:26

标签: c# windows-services

我刚刚构建了一个非常简单的Windows服务来测试某些内容并构建它来获取.exe。根据MSDN中的this article,我还使用Visual Studio命令提示符2010(以管理员身份运行)installutil TestService.exe安装了该服务。

使用installutil命令时,一切运行正常,我收到一条消息,提示已安装该服务。此外,要在“服务”节点内部(在Visual Studio的“服务器资源管理器”中)检查时启动服务,我看不到任何名为TestService.exe的服务。

此外,开始菜单 - >我的电脑(右键) - >管理 - >服务和应用 - >服务未显示我可以通过其TestService.exe启动服务。

有任何建议我如何启动服务?

OnStart函数内的代码:

Process[] testProcess = Process.GetProcessesByName("notepad.exe");
if (testProcess.Length == 0)
    File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "nothing");

else
    File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "run");

3 个答案:

答案 0 :(得分:9)

我之前遇到installutil问题,发现使用sc命令有效,而installutil没有。

尝试使用此命令安装您的服务:

sc create servicename binPath= serviceexe.exe

答案 1 :(得分:9)

我刚遇到此问题,可以通过以下步骤解决此问题。如果您跳过这些步骤,您的安装项目将构建并将文件复制到正确的目录;但是,如果没有这些步骤,他们就不会将您的二进制文件注册为服务。

  1. 在解决方案资源管理器中,右键单击安装项目,指向“查看”,然后选择“自定义操作”。将出现“自定义操作”编辑器。

  2. 在“自定义操作”编辑器中,右键单击“自定义操作”节点,然后选择“添加自定义操作”。将出现“在项目中选择项目”对话框。

  3. 双击列表框中的应用程序文件夹将其打开,从MyNewService(Active)中选择主输出,然后单击OK。主要输出将添加到自定义操作的所有四个节点:安装,提交,回滚和卸载。

  4. 构建安装项目。

答案 2 :(得分:1)

在VS 2013中工作时,我通过右键单击项目并添加类型为Installer Class的新项目添加安装程序时遇到了此问题。关键区别在于您需要右键点击Design View的{​​{1}},然后点击Windows Service

有关.Net 4.5和4.6的完整详情,请参阅Creating a serviceAdding InstallersInstalling a Service