example ejemplo c# sql-server

c# - ejemplo - Detectando si SQL Server se está ejecutando



sqlconnection c# ejemplo (6)

Bueno, la solución de fuerza bruta es intentar iniciar una conexión con la base de datos en cada servidor. Eso le dirá si se está ejecutando, aunque podría tener problemas de tiempo de espera.

La solución más elegante (pero más difícil ... ¿no es siempre así?) Sería utilizar WMI para conectarse a la máquina remota y averiguar si el proceso del servidor SQL se está ejecutando.

Estoy buscando una forma de sondear diferentes servidores y verificar que el servidor SQL esté en funcionamiento. Estoy escribiendo mi código en C #. No me preocupan particularmente las bases de datos individuales, solo que el servidor SQL se está ejecutando y es receptivo.

¿Algunas ideas?


Definitivamente iré con la respuesta de Vincent. Solo asegúrate de que estás cerrando y desechando las conexiones tcp de manera adecuada, etc. WMI parece un poco exagerado para mí si eso es todo lo que buscas.



Use la clase TCPClient para crear una función genérica que se conecte en TCP a una dirección IP determinada.

A continuación, repita la lista de servidores que desea probar e intente abrir una conexión al puerto 1433.


SqlDataSourceEnumerator le proporciona todas las instancias pero no necesariamente se están ejecutando. Para las instancias locales de SQL, puede usar el objeto ServiceController, espacio de nombres System.ServiceProcess. El nombre del servicio es una conjunción de "MSSQL $" e "InstanceName" de SqlDataSourceEnumerator. Establezca la propiedad ServiceName del objeto ServiceController, y puede verificar la propiedad "Estado" - Stopped, Running, Pended, etc. Por lo tanto, puede filtrar los "Running"


System.Data.Sql.SqlDataSourceEnumerator devolverá todas las instancias de SQL Server actualmente en ejecución.
MSDN Link