PDA

View Full Version : استارت کردن سرویس منجر



morteza_261
دوشنبه 12 اسفند 1387, 20:15 عصر
سلام
میخوام از طریق برنامه چک کنم که Service Manager در چه حالتیه و بتونم اون رو از طریق کد نویسی به حالت های مختلف(Start,Stop,Pause) قرار بدم.
با VB.NET2005 و SQL2000
امیدوارم خوب وضیح داده باشم.

__H2__
شنبه 17 اسفند 1387, 18:59 عصر
سلام
SQLServer در واقع یک سرویس ویندوز است...
شما با داشتن نام سرویس میتوانید آن را یافته و فعال و غیر فعال کنید.

مرجع فایل System.ServiceProcess.dll را به پروژه خود اضافه کنید، سپس ...


'VB.Net

Private Function FindService(ByVal servicename As String) As System.ServiceProcess.ServiceController
For Each srv As System.ServiceProcess.ServiceController In System.ServiceProcess.ServiceController.GetService s()
If (srv.ServiceName = servicename) Then Return srv
Next

Return Nothing
End Function

'...

Dim service As System.ServiceProcess.ServiceController = FindService("MSSQLSERVER")
If (service IsNot Nothing) Then

'Start...
If (service.Status And ServiceProcess.ServiceControllerStatus.Running) = 0 Then
service.Start()
service.Refresh()
End If

'Stop...
If (service.Status And ServiceProcess.ServiceControllerStatus.Running) > 0 Then
service.Stop()
service.Refresh()
End If

End If

==============

//C#.Net


private System.ServiceProcess.ServiceController FindService(string servicename)
{
foreach (System.ServiceProcess.ServiceController srv in System.ServiceProcess.ServiceController.GetService s())
{
if (srv.ServiceName == servicename) return srv;
}

return null;
}

//...

System.ServiceProcess.ServiceController service = FindService("MSSQLSERVER");
if (service != null)
{

//Start...
if ((service.Status & ServiceProcess.ServiceControllerStatus.Running) = 0)
{
service.Start();
service.Refresh();
}

//Stop...
if ((service.Status & ServiceProcess.ServiceControllerStatus.Running) > 0)
{
service.Stop();
service.Refresh();
}

}


البته کد فوق را الآن برای اطمینان در SQLServer2008 تست کردم.
برای SQLServer2000 هم فوقش امکان دارد نام سرویس MSSQLSERVER چیز دیگری بوده باشد، که باید یک بار تست کنید.

موفق باشید.