This documentation is archived and is not being maintained.

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.

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.

Namespace hierarchy


Class Description
ServiceBase Provides a base class for a service that will exist as part of a service application. ServiceBase must be derived 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.


Enumeration Description
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.

See Also

.NET Framework Class Library