C# 如何解决安装windows服务时出现的错误1001
安装windows服务时出现以下错误 错误1001。在安装的提交阶段发生异常。此异常将被忽略,安装将继续。但是,安装完成后,应用程序可能无法正常运行-->无法在计算机“”上启动服务ACSERVICE2。“-->服务未及时响应启动或控制请求 感谢您的帮助 代码是: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
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日志条目中,这很容易做到,这将为您提供一个更好的起点来了解发生了什么服务中的错误。