En el archivo de registro de errores de SQL Server encontré las siguientes líneas:
2018-02-22 14:10:58.95 spid17s Starting up database 'msdb'.
2018-02-22 14:10:58.95 spid16s Starting up database 'ReportServer'.
2018-02-22 14:10:58.95 spid18s Starting up database 'ReportServerTempDB'.
2018-02-22 14:10:58.95 spid19s Starting up database 'XYZ'.
Si verifico el estado de la base de datos XYZ antes de este momento, está ONLINE
usando la siguiente declaración:
SELECT state_desc FROM sys.databases WHERE name='XYZ'
... pero cuando intento conectarme a esta base de datos usando una aplicación C #, no se puede conectar a la base de datos.
El error es:
Error de inicio de sesión para el usuario 'asd'.
Motivo: no se pudo abrir la base de datos especificada explícitamente.
Intenté tres usuarios diferentes (usuario de Windows, sa, usuario de SQL Server definido para la aplicación). El problema ocurre cuando ejecuto la aplicación en el inicio del sistema operativo, pero si la inicio manualmente después del inicio, no se producen errores, por lo que creo que todas las configuraciones de SQL Server y firewall son correctas.
También comprobé antes de esto que el estado del servicio se esté ejecutando.
¿Qué más debo verificar para asegurarme de que la base de datos esté realmente en línea y lista para consultas?
Estoy buscando una clave que me diga que está bien consultar la base de datos, en lugar de retrasarla por un tiempo (aunque no se base en una razón clara).
Pensé en escanear el registro de errores para el texto "Iniciando la base de datos 'XYZ'", pero esto significa que tengo que agregar una configuración para la aplicación para la ruta del registro de errores de SQL Server. También significa leer el archivo muchas veces hasta que encuentre esta frase.