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

.NET 服務啟動失敗:Quartz 程序集加載異常排查指南

     編輯:程式設計疑難解答

錯誤現場

Win7 環境下,安裝 .NET Framework 3.5 與 Sybase ODBC 後,通過 install.bat 註冊數據交換服務失敗,拋出異常鏈:

System.Configuration.ConfigurationErrorsException: Error creating context 'spring.root'
--> Spring.Objects.Factory.ObjectCreationException: Error creating object 'SchedulerFactory'
--> System.IO.FileNotFoundException: 未能加載文件或程序集 "Quartz, Version=2.1.2.400..."

核心原因分析

  1. .NET 版本不匹配:若項目使用 VS2010+ 開發,目標框架應為 .NET 4.x,而非 3.5。
  2. Quartz.NET 未正確註冊到 GAC:強簽名程序集需安裝至全局程序集緩存(GAC),或確保所有依賴 DLL 輸出至運行目錄。
  3. 依賴項缺失:Quartz 依賴 Common.Logging 等庫,需一同部署。

解決步驟

1. 確認項目屬性 -> Application -> Target framework 為 .NET 4.0 或更高
2. 使用 gacutil 安裝 Quartz.dll 及其依賴:
   gacutil /i Quartz.dll
   gacutil /i Common.Logging.dll
3. 或在項目屬性 -> Build Events -> Post-build event 中複製所有依賴到輸出目錄
4. 檢查 spring.xml 中 SchedulerFactoryObject 配置的程序集名稱、版本、PublicKeyToken 是否與實際 DLL 一致

建議遷移至 .NET Core / .NET 5+ 並使用 Quartz.NET 官方 NuGet 包,避免 GAC 依賴痛點。

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