soeun tony Ответов: 4

Запуск или остановка службы Sql с помощью VB.NET


Привет всем посетителям
я хочу знать, запускается моя служба sql server или нет на моем компьютере.
На моем ПК, я установил 2 версии сервера SQL (среда SQL Server 2005 с экземпляром имя="администратор" и SQL Server 2008 с экземпляром наименование="sql08server")
для своей базы данных я создал ее в sql server 2008.
Если я хочу знать, что моя служба sql server 2008 запускается или останавливается, как я могу узнать об этом.

Это мой код внутри vb.net
Private Sub StartStop()

        'Dim server As System.ServiceProcess.ServiceController
        Dim service As ServiceController = New ServiceController("SQL08SERVER")

        If ((service.Status.Equals(ServiceControllerStatus.Stopped)) Or (service.Status.Equals(ServiceControllerStatus.StopPending))) Then

            'service.Start()
            MsgBox("Stop")

        Else

            'service.Stop()
            MsgBox("Start")

        End If

    End Sub


После того, как я бегу, он отображает сообщение об ошибке
Служба SQL08SERVER не была найдена на компьютере '.'.

Пожалуйста, помогите мне, как я могу управлять запуском или остановкой службы sql server 2008?

с уважением,

walterhevedeich

Ошибка довольно очевидна. Теперь вам нужно проверить, существует ли он на самом деле. Перейдите в Панель управления- "Администрирование" - "Службы" и проверьте, действительно ли это имя службы.

Suresh Suthar

Перейдите в диспетчер конфигурации SQL Server и проверьте имя службы. Или вы можете использовать Services.msc для проверки имени службы.

soeun tony

Спасибо за вашу идею,
Что касается этой идеи, то она очень хороша, и я последую за вашей идеей.
но, например, пользователь использует мое приложение, чем служба sql server останавливается сама по себе. в этом случае я хочу показать пользователю сообщение о том, что "Служба сервера имеет проблему", чтобы пользователь знал, что у сервера есть проблема, чем он отправится в service.msc, чтобы запустить его снова.

с уважением,

4 Ответов

Рейтинг:
1

Dave Kreskowiak

Я сказал тебе не делать этого по той самой причине, на которую ты сейчас смотришь. Кроме того, у вас могут быть разрешения на просмотр состояния службы, но ваши пользователи, вероятно, этого не сделают, поэтому этот код не будет работать при запуске вашего приложения.


soeun tony

Спасибо за ваш ответ
мой пользователь-это встроенный пользователь (администратор).
с уважением,

Dave Kreskowiak

Да, конечно. Это просто говорит о том, что "катастрофа ждет своего часа".

Рейтинг:
0

#realJSOP

Я с Дэйвом. Ваш код должен просто попытаться подключиться к серверу и изящно справляться с любыми возникающими исключениями. То, что ты пытаешься сделать, это ... ну ... глупо.


soeun tony

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

Рейтинг:
0

Shameel

Нажмите кнопку Пуск --> выполнить и введите services.msc, найдите свою службу SQL Server 2008, щелкните ее правой кнопкой мыши и выберите пункт Свойства. В диалоговом окне Свойства вы увидите фактическое имя службы рядом с меткой " имя службы:". Используйте это имя в коде.


soeun tony

Спасибо за ваш ответ,
Для этого способа он используется для запуска или остановки службы. но моя цель, когда служба останавливается, я хочу отобразить сообщение, чтобы пользователь знал, что "сервер был остановлен". это моя цель (просто хочу отобразить сообщение, чтобы пользователь знал только об этом).
с уважением,

[no name]

Прочтите мой ответ правильно, все, что я сказал, - это узнать правильное название службы, а затем использовать его в своем заявлении следующим образом:
Dim service As ServiceController = новый ServiceController("MSSQL$SQL08SERVER")

soeun tony

Спасибо за ваш ответ
Вот что я хочу знать.
Большое вам спасибо за вашу помощь

Рейтинг:
0

efsnet

Imports System
Imports System.ServiceProcess

Module Module1

    Sub Main()

        Dim myServiceName As String = "MSSQL$SQLEXPRESS" 'service name of SQL Server Express
        Dim status As String  'service status (For example, Running or Stopped)
        Dim mySC As ServiceController

        Console.WriteLine("Service: " & myServiceName)

        'display service status: For example, Running, Stopped, or Paused
        mySC = New ServiceController(myServiceName)
        Try
            status = mySC.Status.ToString
        Catch ex As Exception
            Console.WriteLine("Service not found. It is probably not installed. [exception=" & ex.Message & "]")
            Console.ReadLine()
            End
        End Try
        Console.WriteLine("Service status : " & status)

        'if service is Stopped or StopPending, you can run it with the following code.
        If mySC.Status.Equals(ServiceControllerStatus.Stopped) Or mySC.Status.Equals(ServiceControllerStatus.StopPending) Then
            Try
                Console.WriteLine("Starting the service...")
                mySC.Start()
                mySC.WaitForStatus(ServiceControllerStatus.Running)
                Console.WriteLine("The service is now " & mySC.Status.ToString)

            Catch ex As Exception
                Console.WriteLine("Error in starting the service: " & ex.Message)
            End Try
        End If

        Console.WriteLine("Press a key to end the application...")
        Console.ReadLine()
        End
    End Sub
End Module


Richard Deeming

Спрашивали и отвечали ШЕСТЬ С ПОЛОВИНОЙ ЛЕТ НАЗАД И ваше решение ничего не добавляет к существующим ответам.