在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。
在使用G2服務時,測試服務器連接,結果遇到這個問題。
問題詳細:連接測試失敗!:在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接)。
本機配置:Win7系統,SQL Server 2008 R2 數據庫,在360浏覽器測試使用G2服務測試數據庫連接。
首先查看了數據庫已經允許遠程連接,數據庫連接字符串也填寫正確。PS:連接朋友數據庫正常。
在網絡上搜索了一些答案。
其中,第一種方法:
運行中輸入services.msc,查看SQL有關服務是否全部開啟。
啟動所有可以啟動的SQL相關服務完畢,仍未解決問題。
第二種方法:
設置配置管理器中TCP/IP,端口設置為默認的1433。
結果SQLEXPRESS的協議設置為1433後,重啟SQL Server (SQLEXPRESS)出現錯誤。
然後就不能再啟動了。
最後找了好朋友幫忙,終於解決了問題。
所做的設置有:
更改SQL Server (SQLEXPRESS)TCP/IP
其中8099是任意設置的端口(後面還要在防火牆設置)。
這時可以啟動SQL Server (SQLEXPRESS)
在控制面板打開防火牆,點擊高級設置。
點擊入站規則,新建規則
選擇端口,下一步
輸入之前的端口8099,下一步
默認允許連接,下一步
默認,下一步
輸入名稱8099(可任意命名),完成。
回到高級設置界面
數據庫測試成功
您的支持是我不竭的動力。如果有錯誤的地方,歡迎指正。
在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接)
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Data.SqlClient.SqlException: 在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接)
當出現這個問題時,其實很簡單,是不同的數據庫版本,地連接方法個一樣;注意以下紅字部分。我以前是用Server=.;database=jtj;User ID=sa;Password=
改成了Server==.//SQLEXPRESS;Initial Catalog=jtj;User ID=sa;Password=
折騰了好久才搞好。
1.開啟sql2005遠程連接功能,開啟辦法如下:
配置工具->Sql Server外圍應用配置器->服務和連接的外圍應用配置器->打開MSSQLSERVER節點下的Database Engine節點,先擇“遠程連接”,接下建議選擇“同時使用TCP/IP和named pipes”,確定後重啟數據庫服務就可以了。
2.登陸設置改為:Sql Server 和 Windows 身份驗證模式,具體設置如下:
SQL Server Management Studio管理器->Windows 身份驗證連接服務器->對象資源管理器中選擇你的數據服務器->右鍵->屬性->安全性->Sql Server 和 Windows 身份驗證模式選中。
3.設置一個Sql Server方式的用戶名和密碼,具體設置如下:
(1)SQL Server Management Studio管理器->Windows 身份驗證連接服務器->對象資源管理器中選擇你的數據服務器->展開服務器上的“安全性”->登陸名->在sa帳號上點右鍵->“選擇頁”選擇常規->更改sa登陸帳號的密碼。這樣就設置了一個用戶名為sa,密碼為:sa123456的用戶。
(2)“選擇頁”選擇狀態->登陸修改為啟用
4.數據庫連接字符串
數據庫連接字符串有好幾種,相信你自己也見過,都被搞暈了
Data Server=./SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Server=服務器名/SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Server=localhost/SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Server=.;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Server=服務器名;Initial Catalog=Northwind;User ID=sa;Password=sa123456
……
到底那種正確?這跟數據庫版本有關系,如果是Sql Server 2005 Express版本,則必須要有“/SQLEXPRESS”。而且如果這個字符串是定義為一個變量的時候,VS2005還會在“/”的下面加個紅色的波浪線提示你“/S是無法識別的轉義序列”,因此如果字符串是定義為一個變量的時候應該寫成Server=.//SQLEXPRESS
5.注冊Sql Server數據庫
在路徑“C:/Windows/Microsoft.NET/Framework/v2.0.50727”下運行“ASPNET_REGSQL”指令,就會出現ASP.NET SQL Server Setup Wizard向導,連續按下兩個下一步後就會出現Sql Server注冊界面,填入你要注冊的數據庫參數就注冊好了。注冊完後會在你的數據庫裡多幾個表(如圖):
5.設置數據庫連接字符串
打開IIS->在默認網站或是網站所在的虛擬目錄點擊右鍵選擇屬性->選擇ASP.NET選項卡->編輯配置->在“常規”頁簽編輯“LocalSqlServer”數據庫連接字符串:
Data Server=./SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
6.設置web.config文件
在web.config文件添加如下程序:
<connectionStrings>
<add name="LocalSqlServer" connectionString="Data Source=./SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456" providerName="System.Data.SqlClient"/>
</connectionStrings>
這樣便大功告成了。下面來測試
1.寬松的連接測試
寬松的連接測試使用SqlDataSource
VS2005服務器資源管理器選中數據庫點擊右鍵->選擇修改連接->填入服務器名->使用Sql Server身份驗證填入用戶名sa及密碼sa123456->選擇或輸入一個數據庫名:Northwind->點擊測試連接
寬松的連接測試連接成功並不能說明數據庫就連接OK了,一開始我就是掛在這裡,寬松的連接測試測試連接成功,可是始終無法讀出數據庫的內容到網頁裡頭。
2.嚴謹的連接測試
在VS2005裡選擇網站菜單->ASP.NET配置進入ASP.NET網站管理工具->選擇提供程序->點擊AspNetSqlProvider的測試,若測試成功,說明數據庫設置完全正確,否則得從頭來過好好查查問題在哪裡。