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

SQL Server 服務「遠程程序呼叫失敗」錯誤徹底解決:VS 安裝衝突與連接埠佔用雙重修復

     編輯:關於SqlServer

安裝 Visual Studio 2012/2013/2015 後,SQL Server 2008/2012 常出現「遠程程序呼叫失敗 (0x800706BE)」,導致 SSMS 無法連線、設定管理器無法開啟服務。本文提供三級解決方案,從溫和到徹底。

根因分析

VS 安裝程式會自動安裝 Microsoft SQL Server 2012/2014 Express LocalDB,其服務註冊與 SQL Server 2008 的 WMI 提供者衝突,導致 sqlmgmproviderxpsp2up.mof 版本不匹配,引發 RPC 失敗。

方案一:溫和共存(臨時用、不想動環境)

  1. 「電腦管理」→「服務與應用程式」→「服務」。
  2. 找到 SQL Server (MSSQLSERVER) → 右鍵「啟動」。
  3. SSMS 連線時伺服器名輸入 localhost 或 . 而非 (local)。

服務管理啟動 SQL Server

方案二:移除 LocalDB 徹底解決(推薦生產/開發主力機)

  1. 控制台 → 程式和功能。
  2. 搜尋 Microsoft SQL Server 2012/2014 Express LocalDB → 解除安裝。
  3. 重新整理「SQL Server 設定管理器」,服務應正常顯示。
  4. 啟動 SQL Server (MSSQLSERVER) 及 SQL Server Agent。

解除安裝 LocalDB

服務恢復正常

方案三:修復 WMI 提供者(不想移除 LocalDB 時的替代方案)

  1. 以管理員開啟 CMD,切換至 SQL Server 共用 MOF 目錄:
cd "C:\Program Files (x86)\Microsoft SQL Server\110\Shared"
  1. 重新編譯 MOF:
mofcomp sqlmgmproviderxpsp2up.mof
  1. 重啟 WMI 服務:
net stop winmgmt & net start winmgmt
  1. 重新開啟 SQL Server 設定管理器驗證。

後續問題:連接埠 1433 被佔用導致服務啟動失敗

錯誤訊息:「The request failed or the service did not respond in a timely fashion」,Windows 事件記錄顯示 TCP 1433 已被佔用。

排查與解決

  1. netstat -ano | findstr :1433 找出 PID。
  2. tasklist | findstr 確認進程(通常是 sqlservr.exe 的 Express 實例)。
  3. 在「SQL Server 設定管理器」→「SQL Server 服務」中,停用/禁用 SQL Server (SQLEXPRESS) 及其 Browser、Agent。
  4. 重新啟動 SQL Server (MSSQLSERVER)。

停用 SQLEXPRESS 服務

預防建議

  • 開發機建議僅安裝一個主版本 SQL Server,LocalDB 需求可用 Docker 容器隔離。
  • 安裝 VS 時取消勾選「SQL Server Express LocalDB」(自訂安裝 → 個別元件取消勾選)。
  • 生產環境嚴禁安裝 VS/SSDT,僅保留 Database Engine。

依循上述步驟,即可徹底解決 SQL Server 2008/2012 與 Visual Studio 共存導致的 RPC 失敗與連接埠衝突,恢復穩定的資料庫開發環境。

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