安装程序的OnAfterInstall事件处理程序中发生异常

时间:2016-11-03 11:07:26

标签: c# windows-services windows-installer installutil

我创建了一个Windows服务,我正试图在服务器上部署。

尝试使用具有管理员角色的命令提示符安装它。

安装程序:

[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();
    }

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

        //The following code starts the services after it is installed.
        using (System.ServiceProcess.ServiceController serviceController = new System.ServiceProcess.ServiceController(serviceInstaller1.ServiceName))
        {
            serviceController.Start();
        }
    }

    private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {
        //this.serviceProcessInstaller1.Account = ServiceAccount.LocalSystem;
    }

    private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {

    }
}

它会抛出错误,

error in CMD

  

onafterinstall事件处理程序

中发生异常

还有,

  

System.InvaldiOperationException:无法在计算机上启动服务。   等

任何提示解决方案?
相似的帖子:Post-1Post-2

1 个答案:

答案 0 :(得分:0)

关于服务的错误消息"没有及时响应"表明您的服务在某种程度上被破坏了。 Start机制不是一种即发即弃的设计,它更像是对服务启动代码的调用。该服务应该(及时)退出其开始代码,以表明它正在运行。您的起始代码可能是内联工作太多而不仅仅是进行基本初始化,然后实例化一个线程来完成服务的主要工作或者它在某个地方挂起。