O login falhou quando o SQL Server é iniciado

2

Eu tenho um serviço do Windows que precisa se conectar a bancos de dados do SQL Server (SQL Server 2008 R2, Windows Server 2008 R2). Este serviço depende do SQL Server. O problema é quando o serviço do SQL Server é iniciado:

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.

Depois de ler várias postagens na Internet, verifiquei a propriedade de fechamento automático db (false), verifiquei as permissões de usuário, mas não posso ter este problema, porque meu serviço funciona bem alguns segundos depois de MSSQLSERVER service start.

Tenho algo estranho no meu 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.

Alguma ideia sobre isso?

Obrigado

    
por Morti 20.09.2011 / 17:41

3 respostas

3

Talvez o banco de dados padrão para o login da conta de serviço tenha um tempo significativo para inicializar (porque é grande ou tem algum outro problema?). Para testar isso, você pode alterar o banco de dados padrão desse login para tempdb.

ALTER LOGIN [domain\user] WITH DEFAULT_DATABASE = tempdb;

Você também pode considerar adicionar TRY/CATCH de tratamento de erros ou aguardar a lógica em seu serviço para que não falhe completamente devido a uma incapacidade momentânea de se conectar (especialmente durante a inicialização).

    
por 21.09.2011 / 06:40
0

Na verdade, não falha, a exceção é tratada corretamente, mas o próximo processo não é iniciado.

Na verdade, alguém deu a solução através deste post:

link

Finalmente eu coloco um pouco de lógica para lidar com esse problema (verifique se o estado do banco de dados até que esteja online)

Obrigado pela resposta

    
por 22.09.2011 / 16:59
0

Tente definir seu serviço como Automático (DelayedStart).

link

    
por 22.09.2011 / 17:14