Tengo una aplicación que se ejecuta como un servicio de Windows. Almacena varias configuraciones de cosas en una base de datos que se buscan cuando se inicia el servicio. Creé el servicio para admitir varios tipos de bases de datos (SQL Server, Oracle, MySQL, etc.). Muchas veces los usuarios finales eligen configurar el software para usar SQL Server (simplemente pueden modificar un archivo de configuración con la cadena de conexión y reiniciar el servicio). El problema es que cuando su máquina arranca, muchas veces SQL Server se inicia después de mi servicio, por lo que mi servicio se equivoca al iniciarse porque no se puede conectar a la base de datos. Sé que puedo especificar dependencias para mi servicio para ayudar a guiar al administrador de servicios de Windows para que inicie los servicios apropiados antes que los míos. Sin embargo, no sé de qué servicios depender en el momento de la instalación (cuando mi servicio está registrado) ya que el usuario puede cambiar las bases de datos más adelante.Establecer dependencias de servicio después de la instalación
Así que mi pregunta es: ¿hay alguna manera para que el usuario indique manualmente las dependencias del servicio en función de la base de datos que está utilizando? Si no, ¿cuál es el enfoque de diseño adecuado que debería tomar? He pensado en intentar hacer algo así como esperar 30 segundos después de que mi servicio se inicie antes de conectarme a la base de datos, pero esto parece realmente escamoso por varias razones. También consideré tratar de conectarme "perezosamente" a la base de datos; el problema es que necesito una conexión inmediatamente después de la puesta en marcha, ya que la base de datos contiene varias piezas de información vital que mi servicio necesita cuando comienza. ¿Algunas ideas?
Gracias Esto sin duda ayudará. Esto no es del todo ideal ya que ahora debo instruir a mis usuarios finales para que ejecuten este comando, pero es mejor que nada. – Dennis