windows-services - 安装Windows服务时出现问题

标签 windows-services installutil

我在安装Windows服务时遇到问题。我无数次安装和卸载了该服务(installutil ..... installutil/u),但是出了点问题,现在当我尝试安装时,出现以下错误消息。我检查了计算机管理控制台,并且服务CIMediator没有出现在服务列表中。如何删除服务?

System.ArgumentException:本地计算机上已经存在源CIMediator。

最佳答案

在无数次卸载/安装/重新启动后,也解决了同样的问题。
我有自己的服务安装程序实现(源自[System.Configuration.Install.Installer] [1]),并且指定了应用程序EventLog,如下所示:

    public ProjectInstaller()
    {
        InitializeComponent();

        EventLogInstaller installer = FindInstaller(this.Installers);
        if (installer != null)
        {
            installer.Log = "MyService";                 
        }
    }       

您可能具有通过以下方式实现的相同功能([MSDN:EventLog.CreateEventSource方法] [2]):
if(!EventLog.SourceExists("MySource"))
{
    EventLog.CreateEventSource("MySource", "MyNewLog");
}

就我而言,在某些安装过程中成功创建了EventLog,但在卸载过程中出了点问题,并且未删除EventLog(尽管它未显示在EventViewer中,但仍存在于注册表中)。
因此,错误“MyService在本地计算机上已经存在”显然是关于EventLog的错误,而不是服务本身的错误。

您可以尝试执行以下操作:

转到“开始”菜单,然后键入regedit。这将打开注册表编辑器。请谨慎操作,建议您在执行任何操作(文件->导出)或仅编辑或删除键之前,先备份整个注册表。
打开“编辑”->“查找”,键入CIMediator并仅选中“ key ”。您的服务名称应在以下位置多次显示为键

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\CIMediator,
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\CIMediator,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\CIMediator,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CIMediator



尝试删除这些键。它为我工作。

1
2

关于windows-services - 安装Windows服务时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4824051/

相关文章:

c# - 使用 InstallUtil 安装带有启动参数的 Windows 服务

windows - 使用 NAnt 在构建脚本中安装/卸载 Windows 服务

c# - Quartz.net - 将程序集(单独的计划)放在/bin 之外的不同文件夹中

.net - 更改正在运行的进程 session ID 和 lpDesktop?

c++ - 如何检测是否有任何过程阻止Windows进入休眠状态?

.net - 如何为需要作为 Windows 服务运行但还具有 Web 界面的程序设计 .NET (C#)?

c# - 将 C# WebClient 与代理一起使用 - 没有向代理服务器发出请求?

powershell - Invoke-Item cmdlet 能否启动带参数的可执行文件?

c# - 安装在 Visual Studio 中创建的 Windows 服务