C#で簡易的なWindowsサービスを作ってみる
です。 本日は、前回の続きで簡易的なWindowsサービスを作成してみたいと思います。
開発環境
- VisualStudio2010
- WindowsXP SP3 .Net Framework4
前回までで、何も起動しないサービスを登録するとこまでは出来ました。
今回は、実際に処理を実装し、サービスとして開始、停止をしてみます。 まずは、簡単なとこから、サービスの開始、停止時にアプリケーションのイベントログを記録するようにしてみます。
開始と停止の際に処理される、Onstartメソッド、Onstopメソッドで、EventLogクラスのWriteEntryメソッドを実行します。
1 2 3 4 5 6 7 8 9 |
|
実際にインストールし、サービスを開始、停止してみます。
とりあえず、独自のフォーマットのイベントログが記録出来ました。 では、本題に入って、実際に自作のサービスを登録してみます。
今回は、簡単なwebサーバを実装してみたいと思います。
サービスを実行するのに、OnStartメソッドで開始時に実行したい処理を書けば言い訳ですが、 OnStartメソッドはサービスが指定時間内に、正常起動したことをWindows側へ返す必要があるため ここでは、メインループを別スレッドで実行するように記述します。
HTTPリクエストを処理する簡単なメインループを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
別スレッドでループを開始します。
1 2 3 4 5 6 7 |
|
ここでは、処理を簡単にするため、OnStopメソッドでスレッドを強制的に終了してます。
1 2 3 4 5 6 |
|
ルートに指定したディレクトリに適当にhtmlファイルを用意し、実際にサービスを開始してアクセスしてみます。
とりあえず、出来上がり♪