解決:provider:Named Pipes Provider error:40無法打開SQL Server的連接

問題描述:

        在環境(SQL Server2008、Win7、32位、VS2010開發系統)下,連接數據庫失敗,出現“在於SQL Server建立連接時出現與網絡相關的或特定於實例的錯誤,未找到或無法訪問服務器,請驗證實例名稱是否正確並且SQL Server已配置爲允許遠程連接。(provider:Named Pipes Provider,error:40 - 無法打開SQL Server的連接)”。如下圖所示:

解決方案:

      既然錯誤提示已經說明可能是由於實例名稱寫錯了。那麼這有兩種可能性,一是SQL服務沒有開啓,二是SQL實例名真寫錯了。

1、確認服務是否開啓,我們找到服務設置界面(控制面板-->管理工具-->服務),如下圖所示:

 

 找到SQL Server服務,確認該服務已經開啓。

 (注:SQL在安裝時默認的實例名爲MSSQLServer,學習版爲SQLEXPRESS)

 

2、查看項目的Web.config文件,檢測數據庫連接字符串的實例名(Data Source 的值)是否正確。

如:我查看到配置的Data Source =.         點(.)表示使用MSSQLServer實例,但是從上面可以看出,我SQL使用的是Express版本數據庫,所以正確的配置應該是Data Source =. \SQLEXPRESS

       有些人會說,我也清楚什麼時候用點(.),什麼使用.\SQLEXPRESS,亦或是自定義的實例名。那這個也好辦,只要拿SQL測試一下即可。打開SQL SERVER Management Studio,在登錄中測試我們的數據,把服務器名稱設置爲點(.),如下圖所示:

把服務器名設置爲點(.),提示出錯,錯誤和上面一樣,但是我們換成“.\SQLEXPRESS”就能正常登錄了。

 

出現這種問題的情況:

       一般來說,實例名是很少配置錯誤的,但是如果是團隊項目,平時大家都運行正常,但是哪天突然把代碼和數據庫搬到其他電腦上去運行,由於不同電腦的SQL數據庫的版本的差異(有企業版的,有學習版的)就可能會出現這種問題,當然還有就是自己在安裝SQL的時候把實例名給修改成別的了。

       除了實例名的問題或服務沒有開啓,還有一種情況,就是錯誤提示所說的可能沒有允許遠程連接。這個需要到“外圍配置工具”去修改一下就可以了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章