System.ServiceProcess Namespace

The System.ServiceProcess namespace provides classes that allow you to implement, install, and control Windows service applications. Services are long-running executables that run without a user interface. Implementing a service involves inheriting from the ServiceBase class and defining specific behavior to process when start, stop, pause, and continue commands are passed in, as well as custom behavior and actions to take when the system shuts down.

Classes

ServiceBase

Provides a base class for a service that will exist as part of a service application. ServiceBase must be derived from when creating a new service class.

ServiceController

Represents a Windows service and allows you to connect to a running or stopped service, manipulate it, or get information about it.

ServiceControllerPermission

Allows control of code access security permissions for service controllers.

ServiceControllerPermissionAttribute

Allows declarative service controller permission checks.

ServiceControllerPermissionEntry

Defines the smallest unit of a code access security permission that is set for a ServiceController.

ServiceControllerPermissionEntryCollection

Contains a strongly-typed collection of ServiceControllerPermissionEntry objects.

ServiceInstaller

Installs a class that extends ServiceBase to implement a service. This class is called by the install utility when installing a service application.

ServiceProcessDescriptionAttribute

Specifies a description for a property or event.

ServiceProcessInstaller

Installs an executable containing classes that extend ServiceBase. This class is called by installation utilities, such as InstallUtil.exe, when installing a service application.

TimeoutException

The exception that is thrown when a specified timeout has expired.

Structs

SessionChangeDescription

Identifies the reason for a Terminal Services session change.

Enums

PowerBroadcastStatus

Indicates the system's power status.

ServiceAccount

Specifies a service's security context, which defines its logon type.

ServiceControllerPermissionAccess

Defines access levels used by ServiceController permission classes.

ServiceControllerStatus

Indicates the current state of the service.

ServiceStartMode

Indicates the start mode of the service.

ServiceType

Represents the type of the service.

SessionChangeReason

Specifies the reason for a Terminal Services session change notice.

Remarks

Services are installed using an installation utility such as InstallUtil.exe. The System.ServiceProcess namespace provides installation classes that write service information to the registry. The ServiceProcessInstaller class provides an encompassing class which installs components common to all the services in an installation. For each service, you create an instance of the ServiceInstaller class to install service-specific functionality.

The ServiceController class enables you to connect to an existing service and manipulate it or get information about it. This class is typically used in an administrative capacity, and enables you to start, stop, pause, continue, or perform custom commands on a service. Where the ServiceBase class defines the processing a service performs when a command occurs, the ServiceController is the agent that enables you to call those commands on the service.