5E Windows Service 實作與驗收紀錄

返回文件索引

本文件記錄第五階段 5E Windows Service 最小 hosting gate 的程式實作、測試、停止線、提交、推送與 Actions 驗收。5E 本輪只完成 ServiceHost 內可測試的 hosting gate、非敏感 options、runner delegation、console smoke path 保留與明確 --windows-service smoke path;沒有安裝 Windows Service,沒有新增 service installer、正式 service account、正式 log / config path、外部 DLL loading、DB DDL 或正式部署設定。

0. 基本資訊

驗收日期2026-06-08
對應節點第五階段 5E Windows Service
程式 repo / branchhs-device-control-template / poc/nmodbus-tcp
程式基準 commitc92342b
程式 commit0789d35
Commit 訊息新增 5E Windows Service 最小 hosting gate
GitHub Actions27098568634 success
文件狀態第一批實作、提交、推送與 Actions 驗收紀錄已建立

1. 程式修改範圍

類別檔案
Windows Service optionssrc/HS.DeviceControl.ServiceHost/Options/WindowsServiceHostOptions.cs
Windows Service runnersrc/HS.DeviceControl.ServiceHost/Services/WindowsServiceHostRunner.cs
ServiceHost entry pointsrc/HS.DeviceControl.ServiceHost/Program.cs
ServiceHost teststests/HS.DeviceControl.ServiceHost.Tests/ServiceHostRuntimeTests.cs

2. 實作內容

項目結果
Options新增 WindowsServiceHostOptions,預設關閉,僅保存 service name、display name、description 等非敏感識別資訊。
Options validation阻擋敏感或環境特定字串,不回顯原始值。
Runner新增 WindowsServiceHostRunner,只代理既有 IServiceHostRuntime.Start()Stop()GetStatus(),不操作 OS service。
Fault mappingruntime 例外會轉成 APP-0004 與安全摘要,不暴露例外原文或 stack trace。
Console smoke path保留既有無參數 Program.Main 輸出與 exit code。
Windows hosting smoke path只在明確帶入 --windows-service 時執行 runner smoke path,仍不執行服務安裝。
Package未新增 Microsoft.Extensions.Hosting.WindowsServices 或其他 package。

3. 測試與驗收結果

驗證項目結果
ServiceHost.Tests19 passed / 0 failed / 0 skipped
Application.Tests67 passed / 0 failed / 0 skipped
Solution tests548 passed / 0 failed / 0 skipped
Console smoke pathHS.DeviceControl.ServiceHost: Running...Stopped...,exit code 0。
Windows hosting smoke pathwindows-service HS.DeviceControl.ServiceHost: Running...Stopped...,exit code 0。
停止線掃描未命中 Windows Service 安裝 API / installer、外部 DLL loading、DB DDL、WebApi auth 擴張、plugin folder scan。
污染字串掃描程式 repo 指定文件與程式範圍未命中既定污染字串;本紀錄不重複列出字串內容。
程式 repo commit / push0789d35 已推送至 poc/nmodbus-tcp
GitHub Actions27098568634 completed success。

備註:solution 測試仍有既有 .NET 5.0 EOL warning,與本次 5E 修改無關。

4. 停止線確認

5. 驗收結論

5E Windows Service 最小 hosting gate 已在核准範圍內完成,並通過 ServiceHost、Application、solution 測試、兩條 smoke path、停止線掃描、污染掃描與 GitHub Actions。第五階段尚未完成,因 5F 整合驗收仍需在本文件同步、線上查核完成後,另由使用者回覆 5F 七項確認才可執行。