簡體   English   中英

連接SQL Server問題

[英]SQL Server problems to connect

我正在用C#和WPF開發一個程序。 我希望數據存儲在SQL Server數據庫中。 我在我的PC上創建了一個帶有實例名稱的連接字符串,這很有效。 但是當我想通過互聯網連接IP地址時,我會遇到一些錯誤:

建立與SQL Server的連接時發生與網絡相關或特定於實例的錯誤。 未找到服務器或無法訪問服務器驗證實例名稱是否正確以及SQL Server是否配置為允許遠程連接。 (TCP提供程序,錯誤0 - 無法建立連接,因為目標計算機主動拒絕它。)

我啟用了TCP / IP,允許在SQL配置管理器中進行遠程連接,在我的防火牆中打開了一個1433的端口,但我仍然收到此錯誤。

我的連接字符串是這樣的:

String connString = @"Network Library=dbmssocn;
                     Network Address=127.0.0.1,1433;
                     Integrated security=SSPI;
                     Initial Catalog=db";

SqlConnection conn = new SqlConnection(connString);
conn.Open( );

我的錯誤在哪里?

配置SQL Server以允許TCP / IP連接。 轉到SQL Server配置管理器 - >網絡然后是SQL Server命名實例的協議 - > TCP / IP。

看到這個圖像!

SQL Server配置管理器協議配置

你的連接字符串中有一個非常小的錯誤,說實話,我不能責怪你,因為它是SQL Sever行為的非常奇怪的方式。 我不確定此錯誤是否位於連接提供程序端或SQL Server實例端。 應用程序用於使用dbmssocn (Win32 Winsock TCP / IP)連接到SQL Server的網絡庫的名稱應始終以大寫字母提及。 雖然我沒有看到任何來自MS的相關MSDN文檔來支持我的陳述,但它確實在我這樣做時起作用。 以下是您應該用於修復錯誤的連接字符串。

String connString = @“Network Library = DBMSSOCN ; Network Address = 127.0.0.1,1433; Integrated security = SSPI; Initial Catalog = db”;

說真的,我在復制你的問題時嚇壞了,而不是從我的問題中復制連接字符串,而是從其他博客復制:)。 但一切都很順利。 我還假設在鍵入此答案時,您正在連接的sql server的默認(非命名實例)實例上實際存在名為“db”的數據庫。 如果在連接字符串中更改網絡庫名稱的大小寫無效,則請仔細檢查您要連接到的sql server默認實例的數據庫“db”是否必須存在。 如果您在安裝中使用sql server的命名實例,那么該實例名稱也應該出現在連接字符串中。

暫無
暫無

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

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