首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 連線失敗「驗證實例名稱是否正確」完整排查:Express 版實例名、遠程連線、認證模式、連線字串

     編輯:MySQL 資料庫相關知識

錯誤訊息

System.Data.SqlClient.SqlException: 
在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。
未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。
(provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接)

核心排查清單 (按順序)

1. 確認實例名稱 (Express 版關鍵)

  • 預設實例:. 或 localhost 或 (local) 或機器名
  • Express 命名實例:.\SQLEXPRESS 或 MachineName\SQLEXPRESS 或 localhost\SQLEXPRESS
  • 連線字串寫法:
    Data Source=.\SQLEXPRESS;Initial Catalog=MyDB;User ID=sa;Password=***
    -- C# 字串需轉義
    "Data Source=.\\SQLEXPRESS;Initial Catalog=MyDB;User ID=sa;Password=***"

2. 啟用遠程連線 (SQL Server Configuration Manager)

  1. SQL Server 網路配置 → MSSQLSERVER (或 SQLEXPRESS) → 協定
  2. 啟用 TCP/IP 與 Named Pipes
  3. TCP/IP 屬性 → IP Addresses → IPAll → TCP Port 設為 1433 (或自訂)
  4. 重啟 SQL Server 服務 (SQL Server (MSSQLSERVER) / SQL Server (SQLEXPRESS))

3. 設定混合驗證模式 (SQL Server + Windows)

  1. SSMS 以 Windows 驗證登入
  2. 伺服器右鍵 → 內容 → 安全性 → SQL Server 和 Windows 驗證模式
  3. 重啟服務生效

4. 啟用 sa 帳號並設定強密碼

  1. 安全性 → 登入名 → sa → 右鍵內容
  2. 「一般」頁:設定密碼、取消勾選「強制執行密碼原則」 (測試環境)
  3. 「狀態」頁:登入 → 啟用

5. 防火牆開放埠口

# Windows 防火牆新增入站規則
埠口:TCP 1433 (或自訂埠)
Named Pipes 需開放 445 (SMB)

6. 連線字串完整範本

場景連線字串
本機 Express (命名實例)Data Source=.\SQLEXPRESS;Initial Catalog=DB;User ID=sa;Password=***
本機預設實例Data Source=.;Initial Catalog=DB;User ID=sa;Password=***
遠端 ExpressData Source=192.168.1.100\SQLEXPRESS,1433;Initial Catalog=DB;User ID=sa;Password=***
遠端預設實例Data Source=192.168.1.100,1433;Initial Catalog=DB;User ID=sa;Password=***
信任連線 (Windows 驗證)Data Source=.\SQLEXPRESS;Initial Catalog=DB;Integrated Security=True

7. ASP.NET 註冊資料庫 (舊版 Membership/Role 用)

cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
aspnet_regsql.exe  # 嚮導介面或命令列參數

驗證步驟

  1. SSMS 連線測試 (伺服器名填 .\SQLEXPRESS)
  2. VS 伺服器總管 → 新增連線 → 測試連線
  3. ASP.NET 網站管理工具 → 提供者 → 測試 AspNetSqlProvider
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved