使用InstallUtil.exe安装Windows服务两次创建状态管理问题

时间:2016-01-15 13:20:42

标签: c# windows-services

我在C#上使用Windows服务创建。我还维护一个状态来恢复一些参数,同时卸载它。我写过如下代码

    protected override void OnAfterInstall(IDictionary savedState)
    {   
            SaveInitState(savedState);
            base.OnBeforeInstall(savedState);

    }
    protected override void OnAfterUninstall(IDictionary savedState)
    {       
            RestoreState(savedState);
            base.OnAfterUninstall(savedState);
    }

当我安装服务然后使用InstallUtil.exe取消它时,我的代码完全正常。即状态正确恢复

但是我遇到以下情况的问题。 如果我首先安装该服务,然后再尝试再次安装它,它会给我错误"服务已经退出"哪个是对的。但是当我在上一步之后卸载它时,服务正在正确卸载,但在这种情况下我的状态没有恢复。

我的猜测是我的覆盖功能 OnAfterUninstall 功能在上述情况下没有调用。我还使用此函数中的事件日志验证了这一点。

0 个答案:

没有答案