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.

Public classServiceBaseProvides 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.
Public classServiceControllerRepresents a Windows service and allows you to connect to a running or stopped service, manipulate it, or get information about it.
Public classServiceControllerPermissionAllows control of code access security permissions for service controllers.
Public classServiceControllerPermissionAttributeAllows declarative service controller permission checks.
Public classServiceControllerPermissionEntryDefines the smallest unit of a code access security permission that is set for a ServiceController.
Public classServiceControllerPermissionEntryCollectionContains a strongly-typed collection of ServiceControllerPermissionEntry objects.
Public classServiceInstallerInstalls a class that extends ServiceBase to implement a service. This class is called by the install utility when installing a service application.
Public classServiceProcessDescriptionAttributeSpecifies a description for a property or event.
Public classServiceProcessInstallerInstalls an executable containing classes that extend ServiceBase. This class is called by installation utilities, such as InstallUtil.exe, when installing a service application.
Public classTimeoutExceptionThe exception that is thrown when a specified timeout has expired.

Public structureSessionChangeDescriptionIdentifies the reason for a Terminal Services session change.

Public enumerationPowerBroadcastStatusIndicates the system's power status.
Public enumerationServiceAccountSpecifies a service's security context, which defines its logon type.
Public enumerationServiceControllerPermissionAccessDefines access levels used by ServiceController permission classes.
Public enumerationServiceControllerStatusIndicates the current state of the service.
Public enumerationServiceStartModeIndicates the start mode of the service.
Public enumerationServiceTypeRepresents the type of the service.
Public enumerationSessionChangeReasonSpecifies the reason for a Terminal Services session change notice.