2012-11-04 2 views
0

서버에 연결하기 전에 모든 도메인에서 SQL 서버가 존재하는지 확인해야합니다. 로컬 도메인의 서버 목록을 반복 할 수 있지만 SQLDataSourceEnumerator를 사용합니다.하지만로드하는 데 몇 초가 걸리고 로컬 도메인 만 가져옵니다. 우리는 SQL Server 2005 및 2008 서버와 .Net 2010을 사용하고 있습니다. 서버를 연결하지 않고 30 초 이상 기다리는 것을 원하지 않습니다. 서버가없는 경우 표준으로 표시됩니다.연결 전에 SQL Server가 있는지 확인하십시오.

어떤 제안이 도움이 될 것입니다.

+1

BTW [connect timeout] (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.connecttimeout.aspx)을 직접 지정할 수 있습니다. –

+0

서버를 PING 할 수 있습니까? 그렇다고해서 서버에 실행/수신 대기중인 sqlserver 인스턴스가있는 것은 아니지만 해당 서버에 대한 네트워크 경로에 대해 알 수 있습니다. 마음에 wahtever 방법을 사용하십시오 : 그것은 시간이 걸립니다 ... (인스턴트/보장 예 또는 아니요 상자에서) – rene

+0

StackOverflow 에서이 스레드를 확인하십시오. 어쩌면 유용합니다. [설치된 SQL Server 인스턴스 및 해당 버전을 어떻게 확인할 수 있습니까?] (http://stackoverflow.com/questions/141154/how-can-i-determine-installed-sql-server-instances-and - 그들의 버전) –

답변

1

더 작은 제한 시간으로 연결을 시도하십시오. 연결 문자열에 시간 초과를 설정할 수 있습니다.

Connect Timeout=2; 

이보다 더 빨리 확인할 수 없습니다. 원격 끝점에 SQL Server가 없으면 TCP 연결은 응답을받지 않고 시간이 초과됩니다. (부정적인) 응답이 없으므로 서버가 전혀 없거나 매우 느린지 여부를 알 수 없습니다.

그래서 수신 대기중인 서버가 있는지 확인하기 위해 시간 초과가 가능합니다.

관련 문제