在與 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=
改成了Data Source=.\\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 Source=.\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Source=伺服器名\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Server=.;Initial Catalog=Northwind;User ID=sa;Password=sa123456
Data Source=伺服器名;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註冊介面,填入你要註冊的資料庫參數就註冊好了。註冊完後會在你的資料庫裡多幾個表():
6.設定資料庫連接字串
開啟IIS->在預設網站或是網站所在的虛擬目錄點擊右鍵選擇屬性->選擇ASP.NET選項卡->編輯配置->在“常規”頁簽編輯“LocalSqlServer”資料庫連接字串:
Data Server=.\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sa123456
7.設定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的測試,若測試成功,說明資料庫設定完全正確,否則得從頭來過好好查查問題在哪裡。