ServiceController Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir Windows hizmetini temsil eder ve çalışan veya durdurulan bir hizmete bağlanmanızı, hizmeti işlemenizi veya bu hizmet hakkında bilgi almanızı sağlar.
public ref class ServiceController : System::ComponentModel::Component
public ref class ServiceController : IDisposable
public class ServiceController : System.ComponentModel.Component
public class ServiceController : IDisposable
[System.ServiceProcess.ServiceProcessDescription("ServiceControllerDesc")]
public class ServiceController : System.ComponentModel.Component
type ServiceController = class
inherit Component
type ServiceController = class
interface IDisposable
[<System.ServiceProcess.ServiceProcessDescription("ServiceControllerDesc")>]
type ServiceController = class
inherit Component
Public Class ServiceController
Inherits Component
Public Class ServiceController
Implements IDisposable
- Devralma
- Devralma
-
ServiceController
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki örnekte hizmet örneğini denetlemek için sınıfının kullanımı ServiceController gösterilmektedir SimpleService
.
using System;
using System.ServiceProcess;
using System.Diagnostics;
using System.Threading;
namespace ServiceControllerSample
{
class Program
{
public enum SimpleServiceCustomCommands
{ StopWorker = 128, RestartWorker, CheckWorker };
static void Main(string[] args)
{
ServiceController[] scServices;
scServices = ServiceController.GetServices();
foreach (ServiceController scTemp in scServices)
{
if (scTemp.ServiceName == "Simple Service")
{
// Display properties for the Simple Service sample
// from the ServiceBase example.
ServiceController sc = new ServiceController("Simple Service");
Console.WriteLine("Status = " + sc.Status);
Console.WriteLine("Can Pause and Continue = " + sc.CanPauseAndContinue);
Console.WriteLine("Can ShutDown = " + sc.CanShutdown);
Console.WriteLine("Can Stop = " + sc.CanStop);
if (sc.Status == ServiceControllerStatus.Stopped)
{
sc.Start();
while (sc.Status == ServiceControllerStatus.Stopped)
{
Thread.Sleep(1000);
sc.Refresh();
}
}
// Issue custom commands to the service
// enum SimpleServiceCustomCommands
// { StopWorker = 128, RestartWorker, CheckWorker };
sc.ExecuteCommand((int)SimpleServiceCustomCommands.StopWorker);
sc.ExecuteCommand((int)SimpleServiceCustomCommands.RestartWorker);
sc.Pause();
while (sc.Status != ServiceControllerStatus.Paused)
{
Thread.Sleep(1000);
sc.Refresh();
}
Console.WriteLine("Status = " + sc.Status);
sc.Continue();
while (sc.Status == ServiceControllerStatus.Paused)
{
Thread.Sleep(1000);
sc.Refresh();
}
Console.WriteLine("Status = " + sc.Status);
sc.Stop();
while (sc.Status != ServiceControllerStatus.Stopped)
{
Thread.Sleep(1000);
sc.Refresh();
}
Console.WriteLine("Status = " + sc.Status);
String[] argArray = new string[] { "ServiceController arg1", "ServiceController arg2" };
sc.Start(argArray);
while (sc.Status == ServiceControllerStatus.Stopped)
{
Thread.Sleep(1000);
sc.Refresh();
}
Console.WriteLine("Status = " + sc.Status);
// Display the event log entries for the custom commands
// and the start arguments.
EventLog el = new EventLog("Application");
EventLogEntryCollection elec = el.Entries;
foreach (EventLogEntry ele in elec)
{
if (ele.Source.IndexOf("SimpleService.OnCustomCommand") >= 0 |
ele.Source.IndexOf("SimpleService.Arguments") >= 0)
Console.WriteLine(ele.Message);
}
}
}
}
}
}
// This sample displays the following output if the Simple Service
// sample is running:
//Status = Running
//Can Pause and Continue = True
//Can ShutDown = True
//Can Stop = True
//Status = Paused
//Status = Running
//Status = Stopped
//Status = Running
//4:14:49 PM - Custom command received: 128
//4:14:49 PM - Custom command received: 129
//ServiceController arg1
//ServiceController arg2
Imports System.ServiceProcess
Imports System.Diagnostics
Imports System.Threading
Class Program
Public Enum SimpleServiceCustomCommands
StopWorker = 128
RestartWorker
CheckWorker
End Enum 'SimpleServiceCustomCommands
Shared Sub Main(ByVal args() As String)
Dim scServices() As ServiceController
scServices = ServiceController.GetServices()
Dim scTemp As ServiceController
For Each scTemp In scServices
If scTemp.ServiceName = "Simple Service" Then
' Display properties for the Simple Service sample
' from the ServiceBase example
Dim sc As New ServiceController("Simple Service")
Console.WriteLine("Status = " + sc.Status.ToString())
Console.WriteLine("Can Pause and Continue = " + _
sc.CanPauseAndContinue.ToString())
Console.WriteLine("Can ShutDown = " + sc.CanShutdown.ToString())
Console.WriteLine("Can Stop = " + sc.CanStop.ToString())
If sc.Status = ServiceControllerStatus.Stopped Then
sc.Start()
While sc.Status = ServiceControllerStatus.Stopped
Thread.Sleep(1000)
sc.Refresh()
End While
End If
' Issue custom commands to the service
' enum SimpleServiceCustomCommands
' { StopWorker = 128, RestartWorker, CheckWorker };
sc.ExecuteCommand(Fix(SimpleServiceCustomCommands.StopWorker))
sc.ExecuteCommand(Fix(SimpleServiceCustomCommands.RestartWorker))
sc.Pause()
While sc.Status <> ServiceControllerStatus.Paused
Thread.Sleep(1000)
sc.Refresh()
End While
Console.WriteLine("Status = " + sc.Status.ToString())
sc.Continue()
While sc.Status = ServiceControllerStatus.Paused
Thread.Sleep(1000)
sc.Refresh()
End While
Console.WriteLine("Status = " + sc.Status.ToString())
sc.Stop()
While sc.Status <> ServiceControllerStatus.Stopped
Thread.Sleep(1000)
sc.Refresh()
End While
Console.WriteLine("Status = " + sc.Status.ToString())
Dim argArray() As String = {"ServiceController arg1", "ServiceController arg2"}
sc.Start(argArray)
While sc.Status = ServiceControllerStatus.Stopped
Thread.Sleep(1000)
sc.Refresh()
End While
Console.WriteLine("Status = " + sc.Status.ToString())
' Display the event log entries for the custom commands
' and the start arguments.
Dim el As New EventLog("Application")
Dim elec As EventLogEntryCollection = el.Entries
Dim ele As EventLogEntry
For Each ele In elec
If ele.Source.IndexOf("SimpleService.OnCustomCommand") >= 0 Or ele.Source.IndexOf("SimpleService.Arguments") >= 0 Then
Console.WriteLine(ele.Message)
End If
Next ele
End If
Next scTemp
End Sub
End Class
' This sample displays the following output if the Simple Service
' sample is running:
'Status = Running
'Can Pause and Continue = True
'Can ShutDown = True
'Can Stop = True
'Status = Paused
'Status = Running
'Status = Stopped
'Status = Running
'4:14:49 PM - Custom command received: 128
'4:14:49 PM - Custom command received: 129
'ServiceController arg1
'ServiceController arg2
Açıklamalar
sınıfını ServiceController kullanarak mevcut hizmetlere bağlanabilir ve bu hizmetlerin davranışını denetleyebilirsiniz. Sınıfının bir örneğini ServiceController oluşturduğunuzda, belirli bir Windows hizmetiyle etkileşim kuracak şekilde özelliklerini ayarlarsınız. Daha sonra hizmeti başlatmak, durdurmak ve başka bir şekilde işlemek için sınıfını kullanabilirsiniz.
Büyük olasılıkla bileşeni bir yönetim kapasitesinde kullanacaksınız ServiceController . Örneğin, örnek aracılığıyla ServiceController bir hizmete özel komutlar gönderen bir Windows veya Web uygulaması oluşturabilirsiniz. Service Control Manager (SCM) Microsoft Yönetim Konsolu ek bileşeni özel komutları desteklemediğinden bu yararlı olabilir.
örneğini ServiceControlleroluşturduktan sonra, etkileşim kurduğu hizmeti tanımlamak için üzerinde iki özellik ayarlamanız gerekir: bilgisayar adı ve denetlemek istediğiniz hizmetin adı.
Not
Varsayılan olarak, MachineName yerel bilgisayara ayarlanmıştır, bu nedenle örneği başka bir bilgisayara işaret etmek için ayarlamak istemediğiniz sürece değiştirmeniz gerekmez.
Genellikle, hizmet yazarı belirli bir komutla ilişkili eylemi özelleştiren kod yazar. Örneğin, bir hizmet bir komuta yanıt vermek için ServiceBase.OnPause kod içerebilir. Bu durumda, sistem hizmeti duraklatmadan önce görev için Pause özel işleme çalıştırılır.
Bir hizmetin işleyebileceği komut kümesi özelliklerine bağlıdır; örneğin, bir hizmetin özelliğini olarak false
ayarlayabilirsinizCanStop. Bu ayar, komutu söz konusu hizmette kullanılamaz duruma getirir Stop
; gerekli düğmeyi devre dışı bırakarak hizmeti SCM'den durdurmanızı engeller. Hizmeti kodunuzdan durdurmaya çalışırsanız sistem bir hata oluşturur ve "Durdurulamadı servicename
" hata iletisini görüntüler.
Oluşturucular
ServiceController() |
Sınıfın ServiceController belirli bir hizmetle ilişkilendirilmemiş yeni bir örneğini başlatır. |
ServiceController(String) |
Sınıfın ServiceController , yerel bilgisayardaki mevcut bir hizmetle ilişkili yeni bir örneğini başlatır. |
ServiceController(String, String) |
Belirtilen bilgisayardaki mevcut bir hizmetle ilişkili sınıfının yeni bir örneğini ServiceController başlatır. |
Özellikler
CanPauseAndContinue |
Hizmetin duraklatılıp sürdürülemeyeceğini belirten bir değer alır. |
CanRaiseEvents |
Bileşenin olay oluşturup oluşturamayacağını belirten bir değer alır. (Devralındığı yer: Component) |
CanShutdown |
Sistem kapatılırken hizmete bildirim gönderilip bildirilmeyeceğini belirten bir değer alır. |
CanStop |
Hizmetin başlatıldıktan sonra durdurulup durdurulamayacağını belirten bir değer alır. |
Container |
öğesini IContainer içeren öğesini Componentalır. (Devralındığı yer: Component) |
DependentServices |
Bu ServiceController örnekle ilişkilendirilmiş hizmete bağlı hizmet kümesini alır. |
DesignMode |
öğesinin şu anda tasarım modunda olup olmadığını Component gösteren bir değer alır. (Devralındığı yer: Component) |
DisplayName |
Hizmet için kolay bir ad alır veya ayarlar. |
Events |
Bu Componentöğesine eklenen olay işleyicilerinin listesini alır. (Devralındığı yer: Component) |
MachineName |
Bu hizmetin bulunduğu bilgisayarın adını alır veya ayarlar. |
ServiceHandle |
Hizmetin tanıtıcısını alır. |
ServiceName |
Bu örneğin başvurduğunu hizmeti tanımlayan adı alır veya ayarlar. |
ServicesDependedOn |
Bu hizmetin bağımlı olduğu hizmet kümesi. |
ServiceType |
Bu nesnenin başvurduğunu hizmet türünü alır. |
Site |
öğesini alır veya ayarlar ISiteComponent. (Devralındığı yer: Component) |
StartType |
Nesneyle ServiceController temsil edilen hizmetin nasıl başlatıldığını gösteren bir değer alır. |
Status |
Bu örnek tarafından başvuruda bulunan hizmetin durumunu alır. |
Yöntemler
Close() |
Bu ServiceController örneğin hizmetle bağlantısını keser ve örneğin ayırmış olduğu tüm kaynakları serbest kaldırır. |
Continue() |
Bir hizmet duraklatıldıktan sonra devam eder. |
CreateObjRef(Type) |
Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur. (Devralındığı yer: MarshalByRefObject) |
Dispose() |
Uygulama tarafından tanımlanan, yönetilmeyen kaynakları serbest bırakma, salma veya sıfırlama ile ilişkili görevleri gerçekleştirir. |
Dispose() |
Component tarafından kullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: Component) |
Dispose(Boolean) |
ServiceController tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
ExecuteCommand(Int32) |
Hizmette özel bir komut yürütür. |
GetDevices() |
Yerel bilgisayardaki cihaz sürücü hizmetlerini alır. |
GetDevices(String) |
Belirtilen bilgisayardaki cihaz sürücü hizmetlerini alır. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetLifetimeService() |
Geçersiz.
Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır. (Devralındığı yer: MarshalByRefObject) |
GetService(Type) |
veya tarafından ComponentContainersağlanan bir hizmeti temsil eden bir nesnesi döndürür. (Devralındığı yer: Component) |
GetServices() |
Cihaz sürücü hizmetleri dışında yerel bilgisayardaki tüm hizmetleri alır. |
GetServices(String) |
Cihaz sürücü hizmetleri dışında belirtilen bilgisayardaki tüm hizmetleri alır. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
InitializeLifetimeService() |
Geçersiz.
Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır. (Devralındığı yer: MarshalByRefObject) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
Pause() |
Bir hizmetin işlemini askıya alır. |
Refresh() |
Özellikleri geçerli değerlerine sıfırlayarak özellik değerlerini yeniler. |
Start() |
Bağımsız değişken geçirmeden hizmeti başlatır. |
Start(String[]) |
Belirtilen bağımsız değişkenleri geçirerek bir hizmet başlatır. |
Stop() |
Bu hizmeti ve bu hizmete bağımlı olan tüm hizmetleri durdurur. |
Stop(Boolean) |
Hizmeti ve isteğe bağlı olarak bu hizmete bağımlı olan tüm hizmetleri durdurur. |
ToString() |
Varsa, adını Componentiçeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: Component) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
WaitForStatus(ServiceControllerStatus) |
Hizmetin belirtilen duruma ulaşmasını sonsuz olarak bekler. |
WaitForStatus(ServiceControllerStatus, TimeSpan) |
Hizmetin belirtilen duruma ulaşmasını veya belirtilen zaman aşımının süresinin dolmasını bekler. |
Ekinlikler
Disposed |
Bileşen yöntemine Dispose() yapılan bir çağrı tarafından atıldığında gerçekleşir. (Devralındığı yer: Component) |