NÃO É POSSÃVEL ABRIR O SERVI?O MSSQL$SQLEXPRESS
Boa noite!
estou desenvolvendo um aplicativo, que no load do form ele confere se o serviço de sqlserver está rodando e se não estiver inicia o serviço.
Eu achei este exemplo na net :
Public Shared Function verificaSeSQLServerNaoEstaRodando() As Boolean
Dim servicoControle As New ServiceController([Ô]MSSQL$SQLEXPRESS[Ô])
If servicoControle.Status <> ServiceControllerStatus.Running OrElse servicoControle.Status = ServiceControllerStatus.Stopped OrElse servicoControle.Status = ServiceControllerStatus.Paused Then
servicoControle.Start()
Return True
End If
Return False
End Function
Só que está dando o seguinte erro:
Ocorreu uma exceção sem tratamento do tipo [Ô]System.InvalidOperationException[Ô] em System.ServiceProcess.dll
Informações adicionais: Não é possÃvel abrir o serviço MSSQL$SQLEXPRESS no computador [ô].[ô].
alguém pode me ajudar a resolver este problema?
estou desenvolvendo um aplicativo, que no load do form ele confere se o serviço de sqlserver está rodando e se não estiver inicia o serviço.
Eu achei este exemplo na net :
Public Shared Function verificaSeSQLServerNaoEstaRodando() As Boolean
Dim servicoControle As New ServiceController([Ô]MSSQL$SQLEXPRESS[Ô])
If servicoControle.Status <> ServiceControllerStatus.Running OrElse servicoControle.Status = ServiceControllerStatus.Stopped OrElse servicoControle.Status = ServiceControllerStatus.Paused Then
servicoControle.Start()
Return True
End If
Return False
End Function
Só que está dando o seguinte erro:
Ocorreu uma exceção sem tratamento do tipo [Ô]System.InvalidOperationException[Ô] em System.ServiceProcess.dll
Informações adicionais: Não é possÃvel abrir o serviço MSSQL$SQLEXPRESS no computador [ô].[ô].
alguém pode me ajudar a resolver este problema?
O nome do serviço/instância pode não ser esse. Lembre-se que ao instalar, o nome do serviço e instância podem ser modificados e mesmo depois de instalados isso também pode acontecer. Eu sugeriria utilizar procurar por instâncias para descobrir todos os SQL Servers ao alcance da máquina, mas se preferir ainda usar da maneira com está usando, eu sugiro primeiro listar todos os serviços, depois utilizar uma expressão lambda para verificar se existe um serviço contendo [Ô]MSSQL[Ô] no nome e iria daà em diante:
Dim services As List(Of ServiceController) = InlineAssignHelper(services, ServiceController.GetServices().ToList())
Dim servico As ServiceController = services.FirstOrDefault(Function(x) x.ServiceName.Contains([Ô]MSSQL[Ô]))
If servico IsNot Nothing Then
If servico.Status <> ServiceControllerStatus.Running Then
If servico.Status = ServiceControllerStatus.Paused Or servico.Status = ServiceControllerStatus.Stopped Then
servico.Start()
End If
End If
End If
Lembrando que você deve executar a aplicação como administrador também, senão, não rola...
KERPLUNK,
desculpe minha ignorância, mas eu testei seu código e está dando o seguinte erro:
[Ô]InlineAssignHelper[Ô] não está declarado. Ele pode está inacessÃvel devido ao seu nÃvel de proteção.
E também rodei o meu código mesmo como administrador como citou o nosso amigo DS2T, mas continuou o mesmo erro.
com relação a instancia com o nome ([Ô]MSSQL$SQLEXPRESS[Ô]), está correta. eu entrei no gerenciamento do computador e fui em serviços e SQSExpress e confirmei.
desculpe minha ignorância, mas eu testei seu código e está dando o seguinte erro:
[Ô]InlineAssignHelper[Ô] não está declarado. Ele pode está inacessÃvel devido ao seu nÃvel de proteção.
E também rodei o meu código mesmo como administrador como citou o nosso amigo DS2T, mas continuou o mesmo erro.
com relação a instancia com o nome ([Ô]MSSQL$SQLEXPRESS[Ô]), está correta. eu entrei no gerenciamento do computador e fui em serviços e SQSExpress e confirmei.
é que fiz o código em C# e converti. Como o VB.NET é pobre quanto à cast direto, ele usa um método auxiliar para isso:
Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
target = value
Return value
End Function
Beleza, ajudou muito. valeu!!
Tópico encerrado , respostas não são mais permitidas