provider: Named Pipes Provider, error: 40 – 無法開啟到 SQL Server 的連線
轉載請註明文章出處: ofollow,noindex" target="_blank">https://tlanyan.me/provider-named-pipes-provider-error-connect-sqlserver-error
這是今天關於Windows的第三篇博文(囧),當然這篇不是吐槽而是轉載關於Asp.Net程式連線SQL Server出錯的解決辦法。
文章目錄
錯誤描述
在Asp.Net應用程式裡配置connectionString,開啟網頁時丟擲異常:
[Win32Exception (0x80004005): 系統找不到指定的檔案。] [SqlException (0x80131904): 在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQL Server 已配置為允許遠端連線。 (provider: Named Pipes Provider, error: 40 - 無法開啟到 SQL Server 的連線)]
解決辦法
以下內容主要轉載自: https://blog.csdn.net/haoge921026/article/details/61920229 ,略有整理。
一、檢查連線引數
檢查Web.Config的連線字串是否正確:
三種寫法
// string constr = “server=.;database=myschool;integrated security=SSPI”;
// string constr = “server=.;database=myschool;uid=sa;pwd=sa”;
// strConnection = “data source=.;initial catalog=netdb;user id=sa;pwd=sa”;
`
二,檢查伺服器配置
1. 檢查 MSSQLSERVER 服務是否開啟
2. SQL Server 網路配置
-
啟用 TCP/IP 協議
在配置工具中同時使用TCP/IP和named Pipes,點選”確定”,然後重啟SQLserver服務;
- 右鍵右側的 TCP/IP 的屬性,啟用供外部連線的那個 IP 地址和埠。
注意:TCP動態埠要為空!預設值是0,要刪掉,然後在TCP埠一欄填入1433。
三、檢查防火牆
如果資料庫在本機,可以略過此步。如果資料庫在遠端機器,請先關閉掉遠端機器的防火牆,如果連線成功則說明防火牆配置有問題,重新啟用並放行1433埠。
總結
對SQL Server不熟的鍋,這筆賬不應該算到Windows上。不過說實在的,SQL Server預設使用動態埠也挺奇葩的。