C# 如何解决安装windows服务时出现的错误1001

C# 如何解决安装windows服务时出现的错误1001,c#,.net,windows-services,setup-project,C#,.net,Windows Services,Setup Project,安装windows服务时出现以下错误 错误1001。在安装的提交阶段发生异常。此异常将被忽略,安装将继续。但是,安装完成后,应用程序可能无法正常运行-->无法在计算机“”上启动服务ACSERVICE2。“-->服务未及时响应启动或控制请求 感谢您的帮助 代码是: protected override void OnStart(string[] args) { try { AC_Main objMain = new AC_Ma

安装windows服务时出现以下错误

错误1001。在安装的提交阶段发生异常。此异常将被忽略,安装将继续。但是,安装完成后,应用程序可能无法正常运行-->无法在计算机“”上启动服务ACSERVICE2。“-->服务未及时响应启动或控制请求

感谢您的帮助

代码是:

    protected override void OnStart(string[] args)
    {
        try
        {
            AC_Main objMain = new AC_Main();
            td=new Thread(new ThreadStart(objMain.Main));
            td.IsBackground = true;
            td.Start();
            eLog.WriteEntry("Service Started at :" + System.DateTime.Now.ToString());
        }
        catch(System.Security.SecurityException exc)
        {

        }
    }


 protected override void OnStop()
        {
            td.Abort();
            eLog.WriteEntry("Service Stopped at :" + System.DateTime.Now.ToString());
        }
提交的方法是:

private void ProjectInstaller_Committed(object sender, InstallEventArgs e)
    {
        serviceController.ServiceName = "ACSERVICE2";
        ConnectionOptions coOptions = new ConnectionOptions();

        coOptions.Impersonation = ImpersonationLevel.Impersonate;

        ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions);

        mgmtScope.Connect();

        ManagementObject wmiService;

        wmiService = new ManagementObject("Win32_Service.Name='" + this.serviceController.ServiceName + "'");

        ManagementBaseObject InParam = wmiService.GetMethodParameters("Change");

        InParam["DesktopInteract"] = true;

        ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", InParam, null);

        this.serviceController.Start();

    }

你永远不应该捕捉错误然后忽略它

那可能是你的问题。如果向catch块添加一些日志记录,会发生什么情况

catch(System.Security.SecurityException exc)
{
    eLog.WriteEntry("SecurityException: " + exc.Message);
}

是的,如果您没有正确卸载要重新安装的服务,就会发生这种情况。几天前我也有同样的问题。我创建了一个新项目,复制了相同的代码,重新安装了服务。
我的问题是

亲爱的用户谢谢您的回答,但我也尝试过这样做:catch(System.Security.SecurityException exc){MessageBox.Show(“OnStart:+exc.ToString());}我认为MessageBox在windows服务中不起作用。调用MessageBox.Show()可能会导致另一个错误。您需要将原始错误记录到文本文件或Windows事件日志或类似文件中。@MubbasherKhaliq在服务中如果您想对屏幕进行写入,这是不可能的,但是您可以将其记录到文本文件或Windows日志条目中,这很容易做到,这将为您提供一个更好的起点来了解发生了什么服务中的错误。