コード内のエラーを適切に処理し、サービスを停止する必要があります。
protected override void OnStart(string[] args)
{
oMyObject = new MyObject(args);
if (oMyObject.RunStartup())
{
oThread = new Thread(new ThreadStart(oMyObject.MainLoop));
oThread.Start();
}
base.OnStart(args);
}
oMyObject.RunStartup() はイベント ログにエラーを書き込み、エラーの場合は false を返します。
ただし、サービスは停止されず、イベント ログには "サービスが正常に開始されました" と表示されます。
イベントログに「サービスが正常に開始されました」と表示されずに、OnStart() でサービスを終了して停止するにはどうすればよいですか?