-3

私のWindowsサービスでは、ログに記録するファイルを作成しますが、サービスを実行できません

Logger.InitLogFile("BridgeServiceLog.txt");

このエラーを教えてください エラー 1053: サービスは開始または制御要求にタイムリーに応答しませんでした

public BridgeService()
{
    InitializeComponent();
    Logger.InitLogFile("BridgeServiceLog.txt");
    Trace.WriteLine(Logger.logSwitch.TraceInfo, "Trace Started");

    this.ServiceName = "BridgeService";
    if (!System.Diagnostics.EventLog.SourceExists("BridgeSource"))
    {
         System.Diagnostics.EventLog.CreateEventSource("BridgeSource", "BridgeLog");
    }
    _bridgeServiceEventLog.Source = "BridgeSource";
    _bridgeServiceEventLog.Log = "BridgeLog";
}

私の onStart メソッド

      protected override void OnStart(string[] args)
      {
            Trace.WriteLineIf(Logger.logSwitch.TraceInfo, "OnStart method Started");

            try
            {
                 _bridgeServiceEventLog.WriteEntry("new OnStart");
                 if (Vytru.Platform.Bridge.Configuration.LicenseValidetor.ValidCountAndTypeDevices())
                 {
                      SharedData.InitializeBridge();
                      // WsInitializeBridge();
                 }
                 else
                 {

                      this.Stop();
                      _bridgeServiceEventLog.WriteEntry("LicenseValidetor Error");
                 }
                 _bridgeServiceEventLog.WriteEntry("end Start");
            }
            catch (Exception e)
            {
                 Trace.WriteLineIf(Logger.logSwitch.TraceError, e.Message);
                 _bridgeServiceEventLog.WriteEntry("error In onstart method " + e.Message);
            }
            Trace.WriteLineIf(Logger.logSwitch.TraceInfo, "OnStart Ended");

      }
4

1 に答える 1

0

関数で新しいスレッドを開始する必要がありますOnStart。そうしないと、ServiceManager はアプリケーションがシャットダウンされたと見なしますOnStart。関数が高速で終了した場合にも、このメッセージが表示されます。

サービスを開始する方法については、ここで提供されている例を参照してください。

于 2012-08-28T14:12:47.353 に答える