在尝试连接到服务器之前,我们需要检查是否存在跨所有域的SQL服务器。我们可以使用SQLDataSourceEnumerator遍历本地域上的服务器列表,但这需要几秒钟的时间才能加载,而且它只获取本地域。我们使用的是SQL Server2005和2008服务器以及.Net 2010。如果服务器不存在,我们不想尝试连接并等待30秒或更长时间的超时。
任何建议都会很有帮助。
发布于 2012-11-04 22:09:26
尝试使用较小的超时进行连接。您可以在连接字符串中设置超时时间:
Connect Timeout=2;你不能比这更快的检查。如果远程终结点上没有SQL Server,则TCP连接不会收到响应并超时。因为没有(否定的)响应,所以您无法判断是根本没有服务器,还是只有一个非常慢的服务器。
因此,超时是确定是否有服务器在监听的最好方法。
https://stackoverflow.com/questions/13218482
复制相似问题