Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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# 事件日志ID 7039,则服务设置为运行和停止状态。但OnStart从未被调用_C#_Windows_Service_Event Log - Fatal编程技术网

C# 事件日志ID 7039,则服务设置为运行和停止状态。但OnStart从未被调用

C# 事件日志ID 7039,则服务设置为运行和停止状态。但OnStart从未被调用,c#,windows,service,event-log,C#,Windows,Service,Event Log,我使用microsoft示例创建了一个windows服务 public MyService() { InitializeComponent(); } private void InitializeComponent() { this.eventLog1 = new System.Diagnostics.EventLog(); ((System.ComponentModel.ISupportInitialize)(this

我使用microsoft示例创建了一个windows服务

public MyService()
    {
        InitializeComponent();

    }

private void InitializeComponent()
    {
        this.eventLog1 = new System.Diagnostics.EventLog();
        ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
        // 
        // eventLog1
        // 
        this.eventLog1.Log = "Application";
        this.eventLog1.Source = "MyService";
        // 
        // MyService
        // 
        this.CanHandlePowerEvent = true;
        this.CanHandleSessionChangeEvent = true;
        this.CanShutdown = true;
        this.ServiceName = "MyService";
        ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();

    }

protected override void OnStart(string[] args)
    {
        try
        {

            eventLog1.WriteEntry("Initializing...");

            Init();
            ServiceConfig.Settings.Initialize("MyService");
            eventLog1.WriteEntry("Starting...");

            //do some stuff

            eventLog1.WriteEntry("Started");

        }
        catch (Exception ex)
        {
            eventLog1.WriteEntry("Error:" + ex.Message);
        }
        finally
        {
            base.OnStart(args);
        }
    }
此windows服务配置为在windows启动时自动启动。 几乎在任何地方,几乎总是一切正常,但在操作系统启动时,这项服务很少不启动。 在这些情况下,我总是在事件日志中发现相同的情况。 在应用程序日志上,我什么都没有,在系统日志上,我首先有事件ID 7039,然后是带有“MyService处于运行状态”的事件ID 7036,同时,但在此之后,另一个带有“MyService已停止”的事件ID 7036

相反,当一切正常时,我在系统日志上只有“MyService处于运行状态”,时间在我编写的所有应用程序日志之后,您可以在代码中看到

因此,我的观点是,在某些情况下它不起作用,服务控制管理器永远不会启动服务,OnStart方法也不会被调用。 所以这可能是操作系统的错。 你的意见是什么?
谢谢

是否将启动设置为自动(延迟启动)?否,仅为自动启动。您可以尝试将服务配置为依赖于Windows事件日志服务。我不认为这是必要的,但它可能值得检查。您还可以让您的服务在执行任何其他操作之前,在OnStart()中的不同位置(例如,main()函数、InitializeComponent()等)编写一个纯文本日志文件,并查看这是否为您提供了故障发生的线索。感谢您的建议,我会这样做,收到反馈后会尽快回来。启动是否设置为
自动(延迟启动)
?否,仅为自动。您可以尝试将服务配置为依赖于Windows事件日志服务。我不认为这是必要的,但它可能值得检查。您还可以让您的服务在不同的位置编写一个纯文本日志文件,例如,在执行任何其他操作之前,在OnStart()中的main()函数、InitializeComponent()等,并查看这是否为您提供了故障发生的线索。谢谢您的建议,我会提供这些建议,我会尽快得到反馈。