-
Notifications
You must be signed in to change notification settings - Fork 0
MS_WindowsService
nishi_74322014 edited this page Aug 12, 2026
·
1 revision
- 戻る(Windows OSの基礎的トピック)
- Windowsサービス
- SCM
- サービス・タスク系のいろいろ
- SCMに管理されながら動くプロセス(常駐プロセス等と呼ばれる)
- GUI はなく、処理はバックグラウンド スレッドで実行される。
- サービスの処理は指定したアカウントで実行される。
- SCM経由で(Start, Stop, Pause, Continue, ExecuteCommand 等の)操作をする。
補足(要点の補い): 元ページは短いので、実務で必要になる点を補っておく。
観点 内容 起動の種類 自動 / 自動(遅延開始)/ 手動 / 無効。「遅延開始」は起動直後の I/O 競合を避けるためのもの 実行アカウント 既定は LocalSystem。詳細はサービス・タスク系のアカウント問題 回復操作 失敗時に「サービスを再起動」等を設定できる(サービスのプロパティ →[回復]) 依存関係 他サービスの起動を待つ設定。順序制御はここで行う タイムアウト 起動処理が既定 30 秒を超えると SCMがエラーにする。重い初期化はスレッドに逃がす最後の項目は定番のハマりどころで、
OnStartの中で長時間処理を書くと「サービスが応答しませんでした」となる。
-
.NET Framework 時代は
ServiceBaseを継承して実装した。 -
.NET Core 以降は Worker Service テンプレートを使い、
Microsoft.Extensions.Hosting.WindowsServicesで
Windows サービスとして動かすのが標準である。Host.CreateDefaultBuilder(args) .UseWindowsService() // Windows サービスとして動作 .ConfigureServices(s => s.AddHostedService<Worker>()) .Build().Run();
-
同じコードが
systemd(UseSystemd())でも動くため、
.NETのクロスプラットフォーム対応の恩恵が大きい領域である。
-
Windows サービス アプリケーションの概要 | Microsoft Learn
https://learn.microsoft.com/dotnet/framework/windows-services/introduction-to-windows-service-applications -
.NET ワーカー サービスを Windows サービスとして作成する | Microsoft Learn
https://learn.microsoft.com/dotnet/core/extensions/windows-service
Tags: 移行, Windows, .NET開発
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。