我在安裝Windows服務時遇到問題。我安裝並卸載了多次服務(installutil ..... installutil/u),沒有任何問題,但出現了一些問題,現在當我嘗試安裝時,出現以下錯誤消息。我檢查了計算機管理控制檯,服務CIMediator沒有出現在服務列表中。我如何刪除服務?安裝Windows服務時出現問題
System.ArgumentException:源CIMediator已經存在於本地計算機上。
我在安裝Windows服務時遇到問題。我安裝並卸載了多次服務(installutil ..... installutil/u),沒有任何問題,但出現了一些問題,現在當我嘗試安裝時,出現以下錯誤消息。我檢查了計算機管理控制檯,服務CIMediator沒有出現在服務列表中。我如何刪除服務?安裝Windows服務時出現問題
System.ArgumentException:源CIMediator已經存在於本地計算機上。
檢查註冊表中是否存在密鑰。
HKLM \系統\ CurrentControlSet \服務\ CIMediator(可能是,除非關鍵是不同的定義)
如果是,密鑰導出到.reg文件,然後將其刪除。
剛剛解決了同樣的問題,也經過多次卸載/安裝/重新啓動。 我有我自己的實現服務的安裝程序,我已經指定的應用程序事件日誌(從[System.Configuration.Install.Installer] [1]得到的)的如下:
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
是successfuly創建安裝的,但在卸載過程中出現了問題,而事件日誌未刪除(雖然它沒有在EventViewer
中顯示,但它仍然存在e註冊表)。 因此,錯誤「MyService已經存在於本地計算機上」,顯然是EventLog的錯誤,而不是服務本身。
你可以試着做到以下幾點:
轉到您的開始菜單和類型regedit
。這將打開註冊表編輯器。要小心,總是建議在做任何事情(文件 - >導出)之前備份整個註冊表,或者只有您要編輯/刪除的密鑰。 打開編輯 - >查找,鍵入CIMediator並僅保留Keys檢查。您的服務名稱應顯示爲鍵多次,在以下位置
HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \服務\事件日誌\ CIMediator,
HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \服務\ CIMediator,
HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\事件日誌\ CIMediator,
HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\ CIMediator
嘗試刪除這些註冊表項。它爲我工作。
完美解決方案。我找到了在註冊表中生成的密鑰。我相信我沒有通過Project Bin文件夾安裝它。不知道它是如何創建註冊表項而不安裝的。只是好奇。但是,刪除現有的鍵確實解決了我的問題。謝謝。 – 2016-03-18 16:34:19