Skip to content

MS_WindowsService

nishi_74322014 edited this page Aug 12, 2026 · 1 revision

Windowsサービス

概要

補足(要点の補い): 元ページは短いので、実務で必要になる点を補っておく。

観点 内容
起動の種類 自動 / 自動(遅延開始)/ 手動 / 無効。「遅延開始」は起動直後の I/O 競合を避けるためのもの
実行アカウント 既定は LocalSystem。詳細はサービス・タスク系のアカウント問題
回復操作 失敗時に「サービスを再起動」等を設定できる(サービスのプロパティ →[回復])
依存関係 他サービスの起動を待つ設定。順序制御はここで行う
タイムアウト 起動処理が既定 30 秒を超えると SCM がエラーにする。重い初期化はスレッドに逃がす

最後の項目は定番のハマりどころで、
OnStart の中で長時間処理を書くと「サービスが応答しませんでした」となる。

.NET での実装

  • .NET Framework 時代は ServiceBase を継承して実装した。

  • .NET Core 以降は Worker Service テンプレートを使い、
    Microsoft.Extensions.Hosting.WindowsServices
    Windows サービスとして動かすのが標準である。

    Host.CreateDefaultBuilder(args)
        .UseWindowsService()   // Windows サービスとして動作
        .ConfigureServices(s => s.AddHostedService<Worker>())
        .Build().Run();
  • 同じコードが systemdUseSystemd())でも動くため、
    .NETのクロスプラットフォーム対応の恩恵が大きい領域である。

関連

参考


Tags: 移行, Windows, .NET開発

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally