ASP.NET 應用使用 SQLDMO 實現線上備份/還原等功能。部署至無安裝 SQL Server 的 Web 伺服器時,出現 COM 元件錯誤:
Retrieving the COM class factory for component with CLSID {10020200-E260-11CF-AE68-00AA004A34D5} failed due to the following error: 80040154.
從安裝 SQL Server 的電腦複製下列檔案至目標伺服器 C:\Program Files\Microsoft SQL Server\80\Tools\Binn\ 目錄:
msvcr71.dllSQLDMO.DLLResources\2052\sqldmo.rll (簡體中文資源)Resources\1033\sqldmo.rll (英文資源)下載連結:SQLDMO 打包檔
以系統管理員身分開啟「執行」(Win+R),輸入:
regsvr32 "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll"
提示「DllRegisterServer 成功」即完成註冊。
若註冊後仍報錯 80070005 (存取被拒),原因是 C:\Program Files 僅有 Administrators 與 SYSTEM 控制權限,Web 應用程式池身分 (通常為 Network Service 或 IIS_IUSRS) 無讀取權限。
操作:
C:\Program Files\Microsoft SQL Server 資料夾 → 內容 → 安全性。Network Service (或 IIS_IUSRS) → 確定。重新啟動 IIS (iisreset) 或回收應用程式集區,瀏覽網站功能應恢復正常。
C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\,註冊命令同樣適用。此法可在不安裝完整 SQL Server 的前提下,讓 Web 伺服器支援 SQLDMO 功能。