【问题标题】:Install windows service "Service ... was not found on computer '.'."安装 Windows 服务“服务...未在计算机 '.' 上找到。”
【发布时间】:2011-02-12 11:00:14
【问题描述】:

我正在尝试在 C# VS2010 中创建我的第一个 Windows 服务,并慢慢发现我应该如何做事。但现在我已经到了无法安装新版本服务的地步。我的安装程序告诉我

Error 1001. Service MyService was not found on computer '.'. --> The specified service does not exists as an installed service.

消息的最后一部分从丹麦语翻译成英文。

我无法在服务列表 (services.msc)、registry 或 Add/Remove programs 中看到该服务。我已经从以前的安装中删除了剩余部分,所以这里也没有任何痕迹。我已清空 Windows 帐户下的临时文件夹。

我在哪里可以找到阻碍我安装服务的剩余部分?

【问题讨论】:

    标签: c# windows-services windows-xp visual-studio-2010


    【解决方案1】:

    可能有点离题,但是... Windows 服务的 msi 安装程序以问题着称。你刚刚重新发现了其中之一。由于我以前的 msi 安装程序之一错误地计算了 GAC 引用,我实际上不得不建议我的用户清理他们的注册表,然后我才明白他们为什么不能正确卸载我的服务。这就是您正在尝试做的事情。一般来说,不酷。谷歌搜索“msi 问题”。查看http://installer.codeeffects.com/Default.aspx?HksJ48hGdr=c109(最高点)。在其他论坛上阅读更多内容。最终,您会找到解决特定问题的方法,但旅途不会愉快:)

    【讨论】:

      【解决方案2】:

      你试过Add/Remove Programs吗?如果您还没有去过那里....这里有一篇很好的文章,介绍了如何从MSDN 创建一个简单的 Windows 服务

      【讨论】:

      • @James:不,要是这么简单就好了。在添加/删除程序中也没有它的踪迹:|
      • @Chau:当我开始从事服务工作时,我遇到了很多这样的问题。当您从安装项目进行安装时,我建议您也始终从中进行卸载(不要手动删除文件)。您还可以设置您的项目,以便进行升级。由于您已经手动删除了文件(无疑包括卸载程序),我的建议是重新启动机器并重试。
      【解决方案3】:

      您最初是使用安装项目安装服务,还是仅使用框架文件夹中的 ServiceUtil 安装服务?如果您只想运行新版本的服务,只需停止现有服务,用新的 EXE 替换 EXE,然后重新启动服务即可。

      您的服务是否出现在 SERVICES.MSC 列表中?

      【讨论】:

      • @rwmnau: 到目前为止,我已经做了很多事情,其中​​大部分可能是非常错误的 :) 正如我所说,我在系统中看不到我的服务的任何痕迹,也无法安装新的版本 - 因为它告诉我它无法在计算机上找到已安装的版本。非常混乱的消息。
      【解决方案4】:

      我每次都是这样工作的:

      按照http://www.15seconds.com/issue/021007.htm 中的描述创建服务和服务安装程序,这似乎是老派,但在 VS 2005、2008 和 2010 中的步骤是相同的​​。

      编译服务后,要安装它,请创建以下 cmd 文件(将 YOURSERVICE 替换为您的服务名称)并将其保存在您的 bin 文件夹中。

      for %%x in (%0) do set BatchPath=%%~dpsx
      for %%x in (%BatchPath%) do set BatchPath=%%~dpsx
      
      C:
      cd %windir%
      cd Microsoft.NET
      cd Framework
      cd v2*
      installutil %BatchPath%YOURSERVICE.exe
      NET START  YOURSERVICE
      

      打开命令提示符并运行 cmd。

      要卸载,请创建以下 cmd 文件(将 YOURSERVICE 替换为您的服务名称)并将其保存在您的 bin 文件夹中。

      for %%x in (%0) do set BatchPath=%%~dpsx
      for %%x in (%BatchPath%) do set BatchPath=%%~dpsx
      
      NET STOP YOURSERVICE
      SET ERRORLEVEL=0
      
      c:
      cd %windir%
      cd Microsoft.NET
      cd Framework
      cd v2*
      installutil -u %BatchPath%YOURSERVICE.exe
      

      打开命令提示符并运行 cmd。

      【讨论】:

        【解决方案5】:

        刚刚遇到同样的问题。对我来说,解决方案是以管理员身份运行 CMD -.-

        【讨论】:

          猜你喜欢
          • 2011-03-10
          • 2015-08-26
          • 2013-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-01
          • 2023-03-25
          • 1970-01-01
          相关资源
          最近更新 更多