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

SQL Server 2000 分散式交易錯誤 (MSDTC) 徹底解決指南

     編輯:關於SqlServer

錯誤現象

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

錯誤日誌同現:ResourceManagerCreationFailed: ResultCode=0x8004d01c

根因

Windows .NET Server (後續為 Windows Server 2003) 上,MSDTC 必須 在 NT AUTHORITY\NetworkService 帳戶下執行。若在 Local System 下執行即觸發此錯誤。這是為了強化 RPC 安全性的設計變更。

解決步驟

  1. 登錄編輯:
    regedt32 → HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
    新增 DWORD TurnOffRpcSecurity = 1
  2. 重啟 MSDTC:
    net stop msdtc → net start msdtc
  3. 元件服務設定:
    「開始」→「管理工具」→「元件服務」
    展開「元件服務」→「我的電腦」→右鍵「內容」→「MSDTC」索引標籤
    勾選:網路 DTC 存取、網路管理、網路交易、XA 交易
    DTC 登入帳戶 設為 NT AUTHORITY\NetworkService
    確定 → 系統提示重啟 MSDTC,選 是
  4. 清理登錄:
    刪除步驟 1 新增的 TurnOffRpcSecurity 值

驗證

再次執行連結伺服器查詢,錯誤應消失。若出現 Msg 7391(無法啟動分散式交易),表示「網路 DTC 存取」未啟用,請回步驟 3 確認。

重現測試(僅供驗證修復)

  1. 服務 → 「分散式交易協調器」→「登入」索引標籤 → 改為「本機系統帳戶」
  2. 重啟服務
  3. 查詢分析器執行:
    EXEC sp_addlinkedserver 'remote1'
    EXEC sp_setnetname 'remote1', 'real_server_name'
  4. 錯誤重現 → 依上述步驟修復
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved