C#でWindowsサービスを作りhello worldを表示するサンプルです。
(確認環境:Microsoft Visual Studio Community 2019、.NET Framework 4.7.2)
目次
手順 | プロジェクトとインストーラの追加 |
プロパティの設定 | |
イベントログを追加 | |
ビルドの実行とサービスへの登録 | |
サービスの実行と確認 | |
サービスをアンインストールする |
プロジェクトとインストーラの追加
1.ファイル>新規作成>プロジェクトをクリックしC#の「Windowsサービス(.NET Framewor)」を選択します。
プロジェクト名は、任意の値を指定します。(WindowsService1としました)
2.プロジェクト作成後に表示されているService1.cs上で右クリックし、「インストーラーの追加」をクリックします。
3.ProjectInstaller.csが新規作成されます。
プロパティの設定
1.ProjectInstaller.csを開き、serviceProcessInstaller1をクリックします。
※注 確認した環境では最初上記の文字が表示されていませんでしたが、場所をクリックすると以下のように選択範囲は表示されました。操作を進めていると上記のように文字が表示されました。
6.Accountを「LocalSystem」にします。
7.ProjectInstaller.csのserviceInstaller1をクリックしプロパティを設定します。
Description,DisplayName,ServiceNameを設定しました。
イベントログを追加
1.「表示」>「ツールボックス」をクリックし、ツールボックスから「EventLog」をService1.csにドラッグアンドドロップします。
2.eventlog1をクリックし、プロパティを設定します。SourceをService1としました。
3.eventlog1をダブルクリックしコードを修正します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
namespace WindowsService1
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("Hello World ---START");
}
protected override void OnStop()
{
EventLog.WriteEntry("Hello World ---END");
}
private void EventLog1_EntryWritten(object sender, EntryWrittenEventArgs e)
{
}
}
}
22行目と27行目を追加しました。
ビルドの実行とサービスへの登録
1.「ビルド」>「ソリューションのビルド」をクリックします。
処理結果にexeの出力パスが表示されます。
exeファイルは任意の位置に移動できます。D:\test\WindowsService1.exeとしました。
2.スタートボタン(画面左下にあるWindowsアイコン)>Visual Studio 2019配下の開発者用のコマンドプロンプト>その他>管理者として実行をクリックします。
3.コマンドプロンプト上で以下のコマンドを実行します。
installutil サービスに登録するファイル名 |
installutil D:\test\WindowsService1.exe
成功すると以下のように正常終了のメッセージが表示されます。
サービスの実行と確認
1.Windowsキー+Sで検索窓を開きサービスと入力しサービスの画面を開きます。
作成したサービスが登録されています。
2.サービスを右クリックして「開始」をクリックするとサービスが起動します。
3.スタートボタン(画面左下にあるWindowsアイコン)を右クリックし、「イベントビューア」をクリックします。サービスを実行した結果が表示されています。
4.上記表の対象の1行をクリックするとコードで設定したHello Worldが表示されます。
サービスをアンインストールする
コマンドプロンプト上で以下のコマンドを実行します。
installutil サービスから削除するファイル名 |
installutil -u D:\test\WindowsService1.exe
成功すると以下のように正常終了のメッセージが表示されます。
関連の記事