簡體   English   中英

錯誤:40-無法打開與SQL Server的連接

[英]error: 40 - Could not open a connection to SQL Server

嘗試登錄asp.net應用程序時出現以下錯誤。

建立與SQL Server的連接時發生與網絡相關或特定於實例的錯誤。 服務器未找到或無法訪問。 驗證實例名稱正確,並且已將SQL Server配置為允許遠程連接。 (提供者:命名管道提供程序,錯誤:40-無法打開與SQL Server的連接)

在我的web.config文件中,連接字符串就像

<add name="DefaultConnection" 
     connectionString="Server=1.1.1.1; Database=XYZ; Uid=user; Pwd=pswd;" 
     providerName="System.Data.SqlClient" />

Web和數據庫服務器是分開的。 同一Web服務器上還有其他網站指向同一數據庫服務器上的不同數據庫,工作正常。

當我雙擊SQL Server 2008 R2中的用戶名(安全性->用戶->用戶)時,出現以下錯誤:

在此處輸入圖片說明

我已經檢查了SQL Server服務,並且它們運行良好。 只是想知道在SQL Server中是否與此用戶有關。

此錯誤與用戶無關。 檢查並確保通過SQL Server配置管理器實用程序在SQL Server上啟用了遠程連接,並且防火牆上的端口1433已打開。 您可以使用TELNET或下面的Powershell命令測試端口連接。

1433 | % { echo ((new-object Net.Sockets.TcpClient).Connect("YourServerName",$_)) "server listening on TCP port $_" }

命名管道協議 (請參見錯誤)僅用於同一台計算機上的連接,這(可能)意味着(可能)在SQL Server上未啟用用於外部通信的tcp / ip協議

錯誤的另一個可能原因是sql服務器的命名實例 在連接字符串上,將服務器的IP地址放在沒有實例名稱的位置(最好使用計算機名稱,並將IP放在DNS或hosts文件中),這意味着sql server沒有命名實例是正確的? 有關檢查命名實例的信息,請參見服務。

其他可能的問題可能是:

  • 防火牆(在客戶端和服務器上),
  • sql服務器的監聽端口。
  • 嘗試連接到SQL Server的用戶(密碼錯誤,已禁用,對數據庫和/或對SQL實例沒有權限)

我遇到了同樣的問題,由於某種原因,我不得不添加標准的SQL端口(1433),然后一切正常。 您的情況是:

<add name="DefaultConnection" 
 connectionString="Server=1.1.1.1,1433; Database=XYZ; Uid=user; Pwd=pswd;" 
 providerName="System.Data.SqlClient" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM