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

Windows Server 2003 上 SQL Server 2000 分散式交易 (MSDTC) 錯誤 8501 解決方案

     編輯:關於SqlServer

錯誤現象

在 Windows .NET Server (Windows Server 2003) 上運行鏈接伺服器查詢,即使 MSDTC 服務已啟動,仍報錯:

Server: Msg 8501, Level 16, State 3
MSDTC on server 'server name' is unavailable.

錯誤日誌中顯示:Resource Manager Creation Failed: Result Code = 0x8004d01c

根本原因

Windows Server 2003 為提高 RPC 安全性,要求 MSDTC 必須在 NT Authority\NetworkService 帳戶下運行。但若 MSDTC 服務啟動帳戶為 Local System(Windows NT/2000 預設),即會觸發此錯誤。

解決步驟

  1. 開啟註冊表編輯器 (regedt32),定位至 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC。
  2. 新增 DWORD 值 TurnOffRpcSecurity = 1。
  3. 命令列重啟 MSDTC:
    net stop msdtc && net start msdtc
  4. 開啟「元件服務」管理工具 (dcomcnfg):
    控制台根節點 → 元件服務 → 電腦 → 我的電腦 → 內容 → MSDTC 索引標籤
  5. 勾選以下選項:
    • 網路 DTC 存取
    • 網路管理
    • 網路交易
    • XA 交易
  6. 將 DTC 登入帳戶 設為 NT Authority\NetworkService。
  7. 確定,系統提示重啟 MSDTC,選「是」。
  8. 回到註冊表,刪除剛建立的 TurnOffRpcSecurity 值。

驗證

再次執行鏈接伺服器查詢,錯誤應消失。若出現 Msg 7391,請確認「網路 DTC 存取」已啟用。

注意

  • 修改註冊表與 DCOM 設定需謹慎,建議先備份。
  • 此配置為 Windows Server 2003 環境下 SQL Server 2000 使用分散式交易的必要條件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved