【问题标题】:Test Connectivity of SQL Server from remote machine using C#使用 C# 从远程计算机测试 SQL Server 的连接性
【发布时间】:2013-10-07 09:05:57
【问题描述】:

我需要测试 SQL Server 与我的远程计算机的连接性,

我有 SQL 服务器名称而不是 IP 地址。

如何检查此连接。 我如何知道在哪个端口上启用了通信。

【问题讨论】:

  • 只需尝试连接。敲开一个使用给定连接字符串连接到服务器的小型应用程序。试试看,看看它是否有效。如果您不使用默认端口 - 您可以在连接字符串中指定它;但是,如果不知道是哪个,最好询问服务器管理员,否则这将是一个猜谜游戏(或使用端口扫描器)。
  • 内部连接字符串我可以只提供ServerName,考虑到我没有IP地址,数据库名称,UID和密码我有机器名称。
  • 询问数据库管理员或网络管理员。根据服务器或网络的设置方式,它可能不允许外部连接,使所有建议的答案都无关紧要。如果外部连接是可能的,那么你可以用 c# 做一些事情。
  • 所以您想查找在您只有 DNS 名称的服务器上运行的 SQL Server 的所有实例和 TCP 端口?
  • @Kami : 条件是应用服务器可以访问另一台机器上运行的 SQL Server。

标签: c# sql-server database-connectivity


【解决方案1】:

你需要尝试连接,不直接询问是无法找到有人在监听哪个端口的,嘿,这个端口上有人吗?

这是从 C# 中执行此操作的方法:

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();
}

【讨论】:

    【解决方案2】:

    你必须知道 Sql server 服务在远程服务器上监听的端口。默认端口为 1433。 如果您想测试服务器上的端口是否打开,则可以尝试 Telnet ping。

    打开命令提示符:

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

    如果它是打开的,那么屏幕将立即变空或返回错误。

    【讨论】:

    • 如果您没有安装 Telnet 客户端。您可以从添加删除程序 -> Windows 功能 -> Telnet 客户端启用它并安装它。
    • 感谢您的帮助,但在我的情况下这是不可能的。
    • “不可能”是什么意思?能解释一下吗?
    • 我不允许在任何机器[应用服务器机器和 SQL 服务器机器]上进行任何更改。这就是我说不可能的原因。
    【解决方案3】:

    您还需要知道服务器的 IP 地址或主机名以及 TCP 端口。单独的实例名称无济于事,因为它们没有在网络上公布。如果您有服务器的名称或 IP 以及 SQL Server 实例名称,您可以简单地尝试使用带有适当连接字符串的SqlConnection 进行连接。如果可以连接,一切都很好。

    【讨论】:

      猜你喜欢
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多