I've got a windows service that needs to connect to SQL Server databases (SQL Server 2008 R2, Windows Server 2008 R2). This service depends on SQL Server. The problem is when the SQL Server service starts:

Login failed for user 'Database'. Reason: Failed to open the explicitly specified database. [CLIENT: ]

2011-09-20 17:18:29.47 Logon
Error: 18456, Severity: 14, State: 38.

After reading several posts on internet, I checked the auto close property db (false), checked user permissions but can't be this issue because my service works fine few seconds after MSSQLSERVER service start.

Got something strange in my log :

Recovery completed for database database (database ID 8) in 5 second(s) (analysis 909 ms, redo 0 ms, undo 809 ms.) This is an informational message only. No user action is required.

Any idea about this ?


3 Answers 3


Perhaps the default database for the service account login is one that takes a significant amount of time to start up (because it is large or has some other issue?). To test this you could change that login's default database to tempdb.


You could also consider adding TRY/CATCH error handling or waitfor logic to your service so it doesn't fail outright because of a momentary inability to connect (especially during startup).


Actually it doesn't fail, exception is handled correctly, but the next process does not start.

In fact, someone gave the solution through this post :


Finally i put some logic to handle this problem (check if db state until it's online)

Thanks for the reply


Try setting your service to Automatic (DelayedStart).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.