Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果某些服务未被其他服务使用,则会自动停止_C#_Windows_Service_Windows Services - Fatal编程技术网

C# 如果某些服务未被其他服务使用,则会自动停止

C# 如果某些服务未被其他服务使用,则会自动停止,c#,windows,service,windows-services,C#,Windows,Service,Windows Services,尝试启动windows服务时出现错误“如果某些服务未被其他服务使用,则会自动停止” 我有一个服务,它不使用windows服务配置文件,而是使用静态属性-它工作正常 现在,我使用app.config文件重建我的安装项目+服务项目。现在我安装该服务,然后尝试启动该服务-出现以下错误: 如果某些服务未被其他服务使用,则会自动停止 服务作为本地系统登录 欢迎任何意见!谢谢 这通常是以下两种情况之一的结果:(a)您的OnStart()方法引发异常,或者(b)OnStart()方法没有启动线程来执行工作 如

尝试启动windows服务时出现错误“如果某些服务未被其他服务使用,则会自动停止”

我有一个服务,它不使用windows服务配置文件,而是使用静态属性-它工作正常

现在,我使用app.config文件重建我的安装项目+服务项目。现在我安装该服务,然后尝试启动该服务-出现以下错误:

如果某些服务未被其他服务使用,则会自动停止

服务作为本地系统登录


欢迎任何意见!谢谢

这通常是以下两种情况之一的结果:(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