The 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 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.
|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.|
|SessionChangeDescription||Identifies the reason for a Terminal Services session change.|
|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.|