首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# Windows Service 啟動失敗 Error 1053:服務未及時響應,安裝 .NET Framework 4.6 解決

     編輯:程式設計綜合問答

現象

本機安裝啟動正常,部署到服務器報錯:

錯誤 1053:服務沒有及時響應啟動或控制請求

根本原因

  • 服務器缺少服務項目目標框架版本的 .NET Runtime。
  • 項目編譯目標為 .NET 4.6+,服務器僅安裝 4.0/4.5,CLR 無法加載程序集,導致 `OnStart` 超時(默認 30 秒)。
  • 事件查看器 → Windows Logs → System 可見 SideBySide 或 .NET Runtime 錯誤。

解決方案

  1. 安裝對應 .NET Framework 版本(如 4.6.2、4.7.2、4.8),重啟服務器或服務。
  2. 降低項目目標框架:專案屬性 → Application → Target framework 選服務器已有版本(不推薦,失去新特性)。
  3. 發布為獨立部署:.NET Core / .NET 5+ 可 `dotnet publish -r win-x64 --self-contained true`,無需機器預裝運行時。

調試技巧

// 在 OnStart 開頭寫入日誌,確認是否進入
protected override void OnStart(string[] args) {
    File.AppendAllText(@"C:\Temp\svc.log", $"{DateTime.Now} OnStart entered\n");
    // 耗時初始化放 Task.Run 或 Timer,避免阻塞主線程超時
    Task.Run(() => RealInit());
}

服務啟動超時註冊表調整(臨時)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
ServicesPipeTimeout = 120000 (毫秒,默認 30000)

修改後需重啟機器生效,治標不治本。

總結

Error 1053 多因運行時版本缺失或 `OnStart` 耗時過長。優先核對 .NET 版本,次優異步初始化,最後調註冊表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved