【问题标题】:Check for SQL Server existence before connection连接前检查 SQL Server 是否存在
【发布时间】:2012-11-04 12:24:08
【问题描述】:

在尝试连接到服务器之前,我们需要检查所有域中是否存在 SQL 服务器。我们可以使用 SQLDataSourceEnumerator 遍历本地域上的服务器列表,但这需要几秒钟来加载并且它只获取本地域。我们正在使用 SQL Server 2005 和 2008 服务器以及 .Net 2010。如果服务器不存在,我们不想尝试连接并等待 30 秒或更长时间似乎是标准的超时。

任何建议都会有所帮助。

【问题讨论】:

  • 顺便说一句,您可以自己指定connect timeout
  • 你能先PING一下服务器吗?这并不能保证服务器有一个正在运行/正在侦听的 sqlserver 实例,但可以告诉您有关该服务器的网络路径的一些信息。请记住您使用的任何方法:它需要时间......(没有即时/保证是或否开箱即用)
  • 在 StackOverflow 上查看这个线程。也许它对你有用How can I determine installed SQL Server instances and their versions?

标签: sql-server sql-server-2005 sql-server-2008-r2


【解决方案1】:

尝试以较小的超时时间进行连接。您可以在连接字符串中设置超时时间:

Connect Timeout=2;

您无法比这更快地检查。如果远程端点上没有 SQL Server,则 TCP 连接不会收到响应并超时。因为没有(否定)响应,所以您无法判断是根本没有服务器还是只有一个非常慢的服务器。

所以超时是确定是否有服务器在监听的最好方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    相关资源
    最近更新 更多