2017-07-03 67 views
0

這段代碼在Visual Studio 2017和.NET Core v1.1上執行得很好,但連接超時在Visual Studio for Mac上。如何從Visual Studio for Mac連接到遠程SQL Server?

using System; 
using System.Data.SqlClient; 
using System.Data; 

namespace test_console_app 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (SqlConnection connection = new SqlConnection(@"Server=xxxx,1433\xxxx;Database=xxxx;User Id=xxxx;Password=xxxx")) 
      { 
       using (SqlCommand command = new SqlCommand("Select * from UserAccounts", connection)) 
       { 
        connection.Open(); 
        SqlDataReader reader = command.ExecuteReader(); 
        while (reader.Read()) 
        { 
         Console.WriteLine(((IDataRecord)reader)[1]); 
        } 
       } 
      } 
     } 
    } 
} 

時引發的例外是:

「System.Data.SqlClient.SqlException:建立SQL Server的連接時發生網絡相關的或特定於實例的錯誤服務器是(provider:TCP Provider,錯誤:25 - 連接字符串無效)「

任何人都知道什麼是錯誤的問題可能是?謝謝。

+0

嘗試遠程登錄到該端口上的服務器。它可能是介於兩者之間的防火牆而不是代碼/ .net問題。 – MindingData

+0

下這個文件可能不會工作,但以防萬一?您是否嘗試過使用IP地址而不是主機名?我剛剛在整個週末遇到了一些與我的mac無法正確查詢DNS相關的麻煩。 – crcrewso

+0

是的,我試過使用ip地址。我有這樣的:「服務器= ,1433 \ <服務器實例>」,它適用於Visual Studio 2017.你能解決你的問題? –

回答

0

你可以改變這個SqlConnection(@"Server=xxxx,1433\xxxx;Database=xxxx;User Id=xxxx;Password=xxxx")) 這個SqlConnection(@"Server=xxxx\xxxx,1433;Database=xxxx;User Id=xxxx;Password=xxxx"))

我覺得你把實例名港後,而不是IP。

+0

我已經嘗試了格式化連接字符串的許多不同組合,包括你的建議在這裏和虛無。。。問題仍然存在=/ –

+0

請仔細檢查此問題,可能會對您有所幫助: https://stackoverflow.com/questions/44090015/visual-studio-for-mac-connection-to-remote-ms-sql-server-failed –