41

当我尝试安装 Windows 服务时:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil

我得到,看起来是,一些成功消息和一些失败消息。部分下降:

An exception occurred during the Install phase.
System.ComponentModel.Win32Exception: The specified service has been marked for deletion

在最后:

The Rollback phase completed successfully.

The transacted install has completed.
The installation failed, and the rollback has been performed.

该服务在服务小程序中提供了一个条目,但它被标记为“已禁用”。当我尝试将其更改为另一种状态时,我收到“标记为删除”错误消息。

事件日志中没有消息。installutil.exe 创建的日志文件中没有任何用处(我相信它已写入当前工作目录)。

我没有方向去解决这个问题。我该怎么办?

4

6 回答 6

92

事实证明,如果该服务在“服务”小程序中突出显示,则安装可能会失败,也可能会失败。最安全的做法是关闭服务小程序,安装服务,然后重新打开服务小程序。这真的很愚蠢。

另外,请确保以管理员身份运行控制台。

于 2013-08-28T22:53:06.823 回答
11

我遇到了同样的问题,对我来说问题是已经安装了同名的服务。因此,为了安装新服务,我必须卸载旧服务。我正在学习如何创建和设置 Windows 服务,因此命名冲突。尝试通过以下方式首先卸载服务:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil -u servicename.exe

一旦此语句成功执行,请安装您的服务,它应该会成功而没有任何回滚。

于 2014-02-10T08:25:05.583 回答
3

右键单击命令提示符并选择以管理员身份运行
然后复制并粘贴:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe C:\TestService\bin\Debug\TestService.exe

TestService.InstallLog 中的结果是:

Installing service TestService...
Service TestService has been successfully installed.
于 2017-07-11T04:03:04.800 回答
1

有时由于权限问题会发生这种情况。以管理员身份运行“VS 2012 的开发人员命令提示符”。然后它将起作用。

于 2016-01-28T09:02:40.187 回答
0

添加更多检查和点来解决上述问题。

  1. 以发布模式构建服务并获取发布文件夹文件并保存在不同的路径中
  2. 复制该路径并转到 Visual Studio 命令提示符窗口并运行以下示例命令以安装该服务。
  3. 如果 services.msc 窗口打开,请关闭它,然后运行 ​​C:Program Files (x86)\Microsoft Visual Studio 11.0>InstallUtil.exe C:\RunLocationServices\TestService.exe
  4. 转到 services.msc 并选择该服务并单击启动,如果它更改为“已启动”,那么您的服务运行良好。

如果问题仍然存在,那么另一个检查点和解决方案 当服务启动时,服务会与服务控制管理器通信,服务必须启动多长时间(服务的超时期限)。如果服务控制管理器在此超时期限内没有收到来自服务的“服务启动”通知,则服务控制管理器终止承载该服务的进程。此超时时间通常少于 30 秒。如果您不调整此超时期限,服务控制管理器将结束该过程。要调整此超时时间,请按照下列步骤操作: 1.转到开始 > 运行 > 并键入 regedit 2.导航到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control 选择控制文件夹后,在右侧窗格中单击鼠标右键,然后选择新的 DWORD 值 3.将新的 DWORD 命名为:ServicesPipeTimeout 4。

仍然如果存在问题,那么您的服务代码中存在问题,由于您的服务调用的方法/类,可能会发生无限循环。对每一行进行代码审查。

于 2015-07-08T12:51:14.643 回答
0

这个问题是出于安全考虑,你最好打开 VS 2012 的开发者命令提示符:

以管理员身份运行

并安装您的服务。它肯定会解决你的问题。

我试过了,问题解决了。

于 2016-04-29T12:39:34.407 回答