首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2008

SQL Server 2008 手動註冊 SQLDMO.dll 解決 ASP.NET 部署錯誤

     編輯:SQL Server 2008

背景

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.

解決步驟

1. 複製必要檔案

從安裝 SQL Server 的電腦複製下列檔案至目標伺服器 C:\Program Files\Microsoft SQL Server\80\Tools\Binn\ 目錄:

  • msvcr71.dll
  • SQLDMO.DLL
  • Resources\2052\sqldmo.rll (簡體中文資源)
  • Resources\1033\sqldmo.rll (英文資源)

下載連結:SQLDMO 打包檔

2. 註冊 SQLDMO.DLL

以系統管理員身分開啟「執行」(Win+R),輸入:

regsvr32 "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll"

提示「DllRegisterServer 成功」即完成註冊。

3. 設定資料夾權限 (關鍵步驟)

若註冊後仍報錯 80070005 (存取被拒),原因是 C:\Program Files 僅有 Administrators 與 SYSTEM 控制權限,Web 應用程式池身分 (通常為 Network Service 或 IIS_IUSRS) 無讀取權限。

操作:

  1. 右鍵 C:\Program Files\Microsoft SQL Server 資料夾 → 內容 → 安全性。
  2. 點選 編輯 → 新增 → 輸入 Network Service (或 IIS_IUSRS) → 確定。
  3. 授予 讀取與執行、列出資料夾內容、讀取 權限。
  4. 確定套用。

驗證

重新啟動 IIS (iisreset) 或回收應用程式集區,瀏覽網站功能應恢復正常。

注意事項

  • 64 位元作業系統下,檔案路徑可能為 C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\,註冊命令同樣適用。
  • SQLDMO 屬舊技術,新專案建議改用 SMO (SQL Server Management Objects) 或 PowerShell。

此法可在不安裝完整 SQL Server 的前提下,讓 Web 伺服器支援 SQLDMO 功能。

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