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 örnek, hizmet örneğini ServiceController denetlemek SimpleService için sınıfının kullanımını gösterir.
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 bir örneğini ServiceController oluşturduğunuzda, belirli bir Windows hizmetiyle etkileşim kuracak şekilde özelliklerini ayarlarsınız. Ardından hizmeti başlatmak, durdurmak ve başka bir şekilde işlemek için sınıfını kullanabilirsiniz.
Bileşeni büyük olasılıkla 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. Hizmet Denetim Yöneticisi (SCM) Microsoft Yönetim Konsolu ek bileşeni özel komutları desteklemediğinden bu yararlı olabilir.
örneğini ServiceControlleroluşturduktan sonra, etkileşimde bulunduğu hizmeti tanımlamak için üzerinde iki özellik ayarlamanız gerekir: bilgisayar adı ve denetlemek istediğiniz hizmetin adı.
Uyarı
Varsayılan olarak, MachineName yerel bilgisayara ayarlanır, bu nedenle örneği başka bir bilgisayara işaret edene kadar 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 falseayarlayabilirsinizCanStop. Bu ayar, komutu söz konusu hizmette kullanılamaz duruma Stop getirir; 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
| Name | Description |
|---|---|
| ServiceController() |
Sınıfın ServiceController belirli bir hizmetle ilişkili olmayan yeni bir örneğini başlatır. |
| ServiceController(String, String) |
Belirtilen bilgisayardaki mevcut bir hizmetle ilişkili sınıfın yeni bir örneğini ServiceController başlatır. |
| ServiceController(String) |
Sınıfın ServiceController , yerel bilgisayardaki mevcut bir hizmetle ilişkili yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| 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şkili hizmete bağlı olan 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 tutamacını alır. |
| ServiceName |
Bu örneğin başvurduğunu hizmeti tanımlayan adı alır veya ayarlar. |
| ServicesDependedOn |
Bu hizmetin bağlı 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 |
Nesne tarafından ServiceController temsil edilen hizmetin nasıl başladığını gösteren bir değer alır. |
| Status |
Bu örnek tarafından başvuruda bulunan hizmetin durumunu alır. |
Yöntemler
| Name | Description |
|---|---|
| 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() |
Yönetilmeyen kaynakları serbest bırakma, serbest bırakma veya sıfırlama ile ilişkili uygulama tanımlı görevleri gerçekleştirir. |
| Dispose() |
tarafından Componentkullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: Component) |
| Dispose(Boolean) |
tarafından ServiceController kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları 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üsü hizmetlerini alır. |
| GetDevices(String) |
Belirtilen bilgisayardaki cihaz sürücüsü 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 Componenttarafından Container sağlanan bir hizmeti temsil eden bir nesnesi döndürür. (Devralındığı yer: Component) |
| GetServices() |
Cihaz sürücüsü hizmetleri dışında yerel bilgisayardaki tüm hizmetleri alır. |
| GetServices(String) |
Cihaz sürücüsü hizmetleri dışında belirtilen bilgisayardaki tüm hizmetleri alır. |
| GetType() |
Geçerli örneğin Type 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 Objectbasit 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ı Stringiçeren bir Component döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: Component) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| WaitForStatus(ServiceControllerStatus, TimeSpan) |
Hizmetin belirtilen duruma ulaşmasını veya belirtilen zaman aşımı süresinin dolmasını bekler. |
| WaitForStatus(ServiceControllerStatus) |
Hizmetin belirtilen duruma ulaşmasını sonsuz olarak bekler. |
Ekinlikler
| Name | Description |
|---|---|
| Disposed |
Bileşen yöntemine Dispose() yapılan bir çağrıyla atıldığında gerçekleşir. (Devralındığı yer: Component) |