czhang作成windowsサービス(Windows Services)詳細手順

3112 ワード

WindowsサービスはVisual Studio以前のバージョンでNTサービスと呼ばれ、VSC.netで新しい名前が使われました。Visual CでWindowsサービスを作成するのは難しいことではないので、ここではWindowsサービスを一歩ずつ作成して利用するよう指導します。このサービスは起動時と停止時にテキストファイルにテキスト情報を書き込みます。 第一歩:サービスフレームの作成
新しいWindowsサービスを作成するには、Visual C TelsプロジェクトからWindowsサービス(Windows Service)のオプションを選択して、プロジェクトに新しいファイル名を与え、クリックして確定します。ガイドがプロジェクトファイルにWebService 1.csクラスを追加することができます。その中の各属性の含意はAutologです。                 システムのログファイルが自動的に書き込まれますか?     サービス時に電源イベントを受け付けています。          サービスが一時停止または継続の要求を受け付けているかどうか、CanShutdownサービスは、OnShutDownプロセスを起動することができるように、そのコンピュータを実行するときに通知を受信します。 CanStop                              サービスは運行停止の要求を受け付けていますか?                       サービス名第二ステップ:サービスに機能を追加する
csコードファイルでは無視された関数OnStartとOnStopが二つあります。OStart関数はサービス開始時に実行され、OnStop関数はサービス停止時に実行されます。ここでは、サービスの開始と停止時に、テキストファイルにテキスト情報を書き込みます。コードは以下の通りです。

protected override void OnStart(string[] args)
{
 FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine("mcWindowsService:         Service Started"+DateTime.Now.ToString()+"
");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();

}

protected override void OnStop()
{
FileStream fs = new FileStream(@"d:\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(" mcWindowsService: Service Stopped "+DateTime.Now.ToString()+"
");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
 ステップ3:サービスアプリケーションにインストールプログラムを追加します。
Visual Studio.NETには、サービスアプリケーションに関連するリソースをインストールするためのインストールコンポーネントが付いています。インストールコンポーネントは、インストールされているシステムに単一のサービスを登録し、サービス制御マネージャにサービスの存在を知らせる。サービスを正しくインストールするためには、インストールプログラムに特殊コードをつける必要はありません。しかし、インストールプロセスに特殊な機能を追加する必要がある場合、インストールプログラムの内容を変更する必要がある場合があります。
サービスアプリケーションにインストールプログラムを追加するステップは、
1:ソリューションでは、コンポーネントをインストールするサービスを追加するDesignビューにアクセスします。
2:プロパティウィンドウで、インストールプログラムを追加するリンクをクリックすると、プロジェクトに新しいクラスのProject Installerと2つのインストールコンポーネントServiceProcess InstallerとServiceInstallerが追加され、サービスの属性値がコンポーネントにコピーされます。
3:サービスの開始方法を決定するには、ServiceInstallerコンポーネントをクリックし、StartType属性を適切な値に設定してください。Manual      サービスのインストール後は、手動で起動する必要があります。Automatic    コンピュータが再起動するたびに、サービスは自動的に開始されます。Dispabled     サービスが起動できませんでした。
4:serviceProcessiInstaller類のAccent属性をLocarSystemに変更すると、どのユーザー登録のシステムであれ、サービスは常に起動されます。第四ステップ:サービスプログラムの生成
生成メニューから生成を選択することにより、項目を生成する。注意   F 5キーを押してプロジェクトを実行しないでください。このようにサービス項目を実行できません。第5ステップ:インストールサービスのアクセス項目では、ファイルが実行可能なディレクトリがコンパイルされています。プロジェクトの出力をパラメータとしてコマンドラインからInstallUtil.exeを実行します。コマンドラインに下記のコードを入力します。

installutil yourproject.exe
アンロードサービス
プロジェクトの出力をパラメータとしてコマンドラインからInstallUtil.exeを実行します。

installutil /u yourproject.exe