C# 如果某些服务未被其他服务使用,则会自动停止
尝试启动windows服务时出现错误“如果某些服务未被其他服务使用,则会自动停止” 我有一个服务,它不使用windows服务配置文件,而是使用静态属性-它工作正常 现在,我使用app.config文件重建我的安装项目+服务项目。现在我安装该服务,然后尝试启动该服务-出现以下错误: 如果某些服务未被其他服务使用,则会自动停止 服务作为本地系统登录C# 如果某些服务未被其他服务使用,则会自动停止,c#,windows,service,windows-services,C#,Windows,Service,Windows Services,尝试启动windows服务时出现错误“如果某些服务未被其他服务使用,则会自动停止” 我有一个服务,它不使用windows服务配置文件,而是使用静态属性-它工作正常 现在,我使用app.config文件重建我的安装项目+服务项目。现在我安装该服务,然后尝试启动该服务-出现以下错误: 如果某些服务未被其他服务使用,则会自动停止 服务作为本地系统登录 欢迎任何意见!谢谢 这通常是以下两种情况之一的结果:(a)您的OnStart()方法引发异常,或者(b)OnStart()方法没有启动线程来执行工作 如
欢迎任何意见!谢谢 这通常是以下两种情况之一的结果:(a)您的
OnStart()
方法引发异常,或者(b)OnStart()
方法没有启动线程来执行工作
如果问题是(a),那么显而易见的解决方案是调试服务,以确定哪里出了问题。至少,在OnStart()
方法的内容周围放置一个try-catch
块,并在发生异常时将错误记录到系统事件日志中。然后可以在Windows事件查看器中查看详细信息
如果问题是(b),那么您需要创建一个实际执行某些操作的线程。该线程需要是前台线程(而不是后台线程),以防止服务关闭。典型的OnStart()
方法如下所示:
private System.Threading.Thread _thread;
protected override void OnStart(string[] args)
{
try
{
// Uncomment this line to debug...
//System.Diagnostics.Debugger.Break();
// Create the thread object that will do the service's work.
_thread = new System.Threading.Thread(DoWork);
// Start the thread.
_thread.Start();
// Log an event to indicate successful start.
EventLog.WriteEntry("Successful start.", EventLogEntryType.Information);
}
catch (Exception ex)
{
// Log the exception.
EventLog.WriteEntry(ex.Message, EventLogEntryType.Error);
}
}
private void DoWork()
{
// Do the service work here...
}
我犯了这个错误,那是因为硬盘已经满了。它可能是阻止服务运行的任何东西。在我的serviceInstaller.msi上运行installUtil.cmd时,由于没有创建dll,我遇到了相同的错误。为了解决这个问题,我必须为我在项目中期望的每个dll包含一个=>
,并将其放在我的Service.wxs文件中。像这样=>*这里*
。并确保installers x copy命令中包含所有dll:)
希望这有帮助 我在启动服务时遇到了相同的错误。当我去查看应用程序日志时,错误与telnet有关。这意味着telnet(23)的端口被另一个服务占用,此时需要转到资源管理器,检查使用23端口的服务,并禁用该服务,然后相应的服务才能正常启动。本地计算机上的Windows Search服务启动,然后停止。如果某些服务未被其他服务或程序使用,则会自动停止
检查 我可以通过调整服务属性来解决这个问题 我注意到所有其他工作服务都使用“本地系统”作为“登录身份”,但出现问题的服务使用的是“本地服务”。您可以通过转到服务列表,右键单击所需的服务,单击上下文菜单上的属性,然后将“登录身份”更改为“本地系统帐户”,如果它与下图所示不同,则可以解决此问题
我也得到了同样的错误,并从这个答案中得到了解决方案。。。谢谢。是的,我在Windows事件日志中发现服务错误。请同时更新答案。更正事件日志的拼写。。。。有用的回答,谢谢@MattDavis