2013-10-07 43 views
0

我需要測試SQL Server與遠程計算機的連接,使用C#測試從遠程計算機連接SQL Server

我有SQL服務器名稱不是IP地址。

如何檢查此連接性。 我將如何知道啓用通信的端口。

+0

只需嘗試連接。敲擊使用給定連接字符串連接到服務器的小應用程序。嘗試一下,看看它是否有效。如果你沒有使用默認端口 - 你可以在連接字符串中指定;然而,不知道它是哪一個,最好問服務器管理員,否則它將是一個猜謎遊戲(或使用端口掃描器)。 – Kami

+0

裏面的連接字符串我可以只提供ServerName,考慮到我沒有IP地址,數據庫名稱,UID和密碼我有機器名。 –

+3

詢問數據庫管理員或網絡管理員。根據服務器或網絡的設置方式,它可能不允許外部連接,使所有建議的答案無關緊要。如果外部連接是可能的,那麼你可以用c#做一些事情。 – Kami

回答

0

那麼你必須知道Sql服務器服務正在遠程服務器上偵聽的端口。默認端口是1433. 如果您想測試端口是否在服務器上打開,那麼您可以嘗試Telnet ping。

打開命令提示符:

C:\> Telnet <YourServername> <portno.> 

如果它是開放的,然後屏幕上會立即走空或返回一個錯誤。

+0

如果您沒有安裝Telnet客戶端。您可以從添加刪除程序 - > Windows功能 - > Telnet客戶端啓用它並進行安裝。 – vendettamit

+0

感謝您的幫助,但在我的情況下是不可能的。 –

+0

「不可能」是什麼意思?可以請解釋一下嗎? – vendettamit

0

你需要嘗試連接,沒有辦法找到某人正在監聽的端口,而沒有直接詢問,嘿,這個端口上有沒有人?

下面是從C#這樣做的方法:你需要知道服務器和TCP端口的IP地址或主機名

TcpClient tc = null; 
try 
{ 
    tc = new TcpClient("MyAddress", MyPort); 
    // port is open 
} 
catch(SocketException se) 
{ 
    // port is not open, or host is not reachable 
} 
finally 
{ 
    tc.Close(); 
} 
0

了。實例名稱本身不會有幫助,因爲它們不在網絡上公佈。如果您有服務器的名稱或IP以及SQL Server實例名稱,則只需嘗試使用帶有適當連接字符串的SqlConnection進行連接即可。如果你可以連接,一切都很好。