Проблема входа в SQL Server для службы Windows при перезагрузке - PullRequest
1 голос
/ 09 ноября 2009

У меня есть служба, которая зависит от SQL Server Express (2005). Каждое утро, когда я перезагружаю свою машину, я вижу, что служба не запущена. В средстве просмотра событий я вижу следующую ошибку:

Служба не может быть запущена. System.Data.SqlClient.SqlException: Невозможно открыть базу данных «MyDatabase», запрошенную при входе в систему. Ошибка входа.

Ошибка входа пользователя 'NT AUTHORITY \ SYSTEM'.

в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое прерывание соединения)

в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj)

в System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj *)

в System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin (логический список enO)

в System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (ServerInfo serverInfo, String newPassword, логическое ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)

в System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (Строковый хост, String newPassword, логический redirectedUserInstance, SqlConnection owningObject, SqlConnectionString conn ...

Если я сейчас перезапущу службу, она работает нормально, но не при первом включении машины.

Есть какие-нибудь подсказки, почему это происходит?

JD.

Ответы [ 3 ]

2 голосов
/ 09 ноября 2009

Я думаю, это может произойти, когда ваш сервис запускается до SQL Server Express. Я рекомендую проверить одно из этих решений ниже:

  • добавить больше попыток входа в базу данных с соответствующим временем задержки
  • проверьте, работает ли Sql Server, прежде чем пытаться войти в базу данных
2 голосов
/ 09 ноября 2009

Вы можете использовать программу «regedit» для редактирования списка зависимостей для службы, это заставит службу ждать, пока не запустится служба SQL Server Express. Откройте программу «regedit» и перейдите к HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>. Найдите ключ с именем «DependOnService» типа REG_MULTI_SZ. Если ваш сервер - Windows 2003, тогда редактор REG_MULTI_SZ допускает строковое значение на строку, в противном случае двоичный редактор в Windows 2000 требует нулевого байта между каждой буквой. Вы хотите ввести отображаемое имя SQL Server 2005 Express, как показано в диспетчере служб. При установке по умолчанию обычно отображается «SQL Server (SQLEXPRESS)». Если вы делаете это правильно, когда вы просматриваете вкладку «Зависимости» зависимой службы, вы должны увидеть SQL Server Express, перечисленный в разделе зависимости от.

0 голосов
/ 21 мая 2014

Другое простое решение - настроить службу Windows - запуск в автоматическом режиме (отложенный запуск).

Служба, помеченная как Автоматическая (отложенный запуск), запустится вскоре после запуска всех других служб, обозначенных как Автоматическая. По моему опыту, это означает, что они запускаются через 1-2 минуты после загрузки компьютера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...