→[[OS関連]] →.NETプログラミング →WindowsAPI関連 #contents (構築中) -※ Visual Studio .NET 2005での開発として記述する *参考にするヘルプ [#zc9adb08] -Visual Stuidoプログラマーズガイドの「Windows サービス アプリケーション 」の章 -ServiceBaseクラス -ServiceProcessInstallerクラス -ServiceInstallerクラス -ServiceControllerクラス *予備知識 [#nb46a995] -動作アカウント --既定では、サービスはシステム アカウントで実行されます。このシステム アカウントは、管理者アカウントとは異なります。システム アカウントの権限は変更できません。ただし、ServiceProcessInstaller を使用して、サービスを実行するときに使用するユーザー アカウントを指定できます。 *Windowsサービス作成時のルール [#hdc6b89e] -MainメソッドでServiceBase.Run()を呼ぶ必要がある(プロジェクト作成時に自動生成される) -インストールコンポーネントを必ず作成する必要がある --※インストールコンポーネントとは、サーバーへのサービスのインストールと登録を行う機能 -ウインドウステーションが非I/Oなのでサービスからメッセージボックスは表示できない。呼び出すと処理が止まるので呼んではいけない -エラー出力などはイベントログに対して行うのが望ましい *サービスのインストーラを作成するには [#m91030e0] -ソリューション エクスプローラで Service1.vb、Service1.cs、または Service1.jsl を右クリックし、[デザイナの表示] をクリックします。 -デザイナの背景をクリックして、サービスの内容ではなくサービス自体を選択します。 -デザイナにフォーカスを置いた状態で右クリックし、[インストーラの追加] をクリックします。 -既定では、2 つのインストーラを含むコンポーネント クラスがプロジェクトに追加されます。このコンポーネントは ProjectInstaller という名前で、サービス用のインストーラと、サービスの関連プロセス用のインストーラを含んでいます。 -ProjectInstaller のデザイン ビューで、[serviceInstaller1] をクリックします。 -[プロパティ] ウィンドウで、[ServiceName] プロパティを <自分の作ったサービスプロジェクトの名前> に設定します。 -[StartType] プロパティを Automatic に設定します。 -デザイナで、[serviceProcessInstaller1] をクリックします。 -[Account] プロパティを LocalService に設定します。これにより、サービスがインストールされ、ローカル サービス アカウントで実行されます。 *OnStartで停止するには [#d86c0da4] -ApplicationExceptionをthrowする -参考URL:http://bbs.wankuma.com/index.cgi?mode=al2&namber=14866&KLOG=31 *デバッグ方法 [#u49cb641] -直接ステップインはできない。起動してからプロセスにアタッチする