1

私は C# で小さな Windows サービスを作成しました。これは、特定のポートでリッスンし、要求に対して何かを行う必要があります。

Main も次のように書きました。

using System;
using System.ServiceProcess;

namespace AutoDeployService
{
    public static class WindowsServiceController
    {
        private static void Main(string[] args)
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new AutoDeployService() 
            };

            if (Environment.UserInteractive)
            {
                new AutoDeployService().ConsoleRun();
            }
            else
            {
                System.Diagnostics.Debugger.Break();
                ServiceBase.Run(ServicesToRun);
            }
        }
    }
}

したがって、コンソールの有無にかかわらずサービスを開始できます。プログラムを Console-Application として起動すると、正常に動作します!

「InstallUtil.exe」でサービスをインストールすると、完全にインストールされ、サービスのリストに表示されます。しかし、サービスを開始しようとすると、約 30 分以上後に次のメッセージが表示されます。

サービスは開始要求または制御要求にタイムリーに応答しませんでした。

www でこのエラーを調査したところ、OnStart-Method には時間がかかることがわかりました。現在、私の OnStart-Method は次のようになっています。

        protected override void OnStart(string[] args)
        {
            base.OnStart(args);
            var initializeThread = new Thread(new ThreadStart(Initialize));
            initializeThread.Start();
        }

だから、誰かが私を助けてくれることを願っています。

ご挨拶

編集:サービスマネージャーで彼を開始した後にサービスが開始されたようですが、サービスマネージャーでは上記のエラーが表示され、開始されていないと定義されています。

イベントログ:

名前Der Fehlerhaften Anwendung:autodeployservice.exe、バージョン:1.0.0.0、Zeitstempel:0x5459e290 name des fehlerhaftenモデル:不明、バージョン:0.0.0.0、Zeitstempel:0x000000 ded dedafzed dedafzed dedahecode : 0x01cff8d816b830d8 Pfad der fehlerhaften Anwendung: C:\Users* username* \Desktop\AutoDeploy\AutoDeployService\bin\Debug\AutoDeployService.exe Pfad des fehlerhaften Moduls: unknown Berichtskennung: 5d636ccf-64cb-11e4-b5d1-0050568bc9b7

編集:

サービスを開始すると、フォルダーを作成しないため、サービスは OnStart-Method に入らないようです。

4

2 に答える 2

0

ご協力ありがとうございました。

次のコマンドでデバッガーをアタッチすると、エラーが発生しました。

Debugger.Launch().

アプリケーションからのスレッドにエラーがありました。

于 2014-11-05T10:08:33.547 に答える