私は 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 に入らないようです。