В файле журнала ошибок SQL Server я нашел следующие строки:
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'.
Если до этого времени я проверяю состояние базы данных XYZ, она ONLINE
использует следующее утверждение:
SELECT state_desc FROM sys.databases WHERE name='XYZ'
... но когда я пытаюсь подключиться к этой базе данных с помощью приложения C #, он не может подключиться к базе данных.
Ошибка:
Не удалось войти в систему для пользователя «asd».
Причина: не удалось открыть явно указанную базу данных.
Я пробовал трех разных пользователей (пользователь Windows, sa, пользователь SQL Server, определенный для приложения). Проблема возникает, когда я запускаю приложение при запуске ОС, но если я запускаю его вручную после запуска, ошибок не возникает, поэтому я считаю, что все параметры SQL Server и параметры брандмауэра верны.
Я также проверял перед этим, что статус сервиса работает.
Что еще я должен проверить, чтобы убедиться, что база данных действительно подключена и готова для запросов?
Я ищу ключ, который говорит мне, что можно делать запросы к базе данных, вместо того, чтобы откладывать на какое-то время (даже не по понятной причине).
Я думал о сканировании журнала ошибок на наличие текста «Запуск базы данных« XYZ »», но это означает, что мне нужно добавить настройку приложения для пути к журналу ошибок SQL Server. Это также означает чтение файла много раз, пока я не найду эту фразу.