Por el momento estoy usando este código para comprobar si la base de datos es accesible:ADO.NET: ¿Una forma más rápida de verificar si se puede acceder al servidor de la base de datos?
public bool IsDatabaseOnline(string con)
{
bool isConnected = false;
SQLConnection connect = null;
try {
connect = new SQLConnection(con);
connect.Open();
isConnected = true;
} catch (Exception e) {
isConnected = false;
} finally {
if (connect != null)
connect.Close();
}
return isConnected;
}
Si bien este código funciona bien, hay una desventaja. Si el servidor no está en línea, pasa aproximadamente 4 segundos completos intentando abrir la conexión antes de decidir que no está disponible.
¿Hay alguna manera de probar la conexión sin intentar abrirla realmente y esperando el tiempo de espera? Algo así como una base de datos equivalente de ping?
¿Espera que su servidor para estar abajo por mucho tiempo? –
Debería cambiar eso a 'catch (SqlException)' – SLaks