There are many instances in which a developer might want to develop an application that runs as a Windows Service, and there are some distinct advantages to doing so. At Stackify, we aim to help make you a better developer in every possible scenario, and that’s why we built Prefix to help you debug Windows Services (and tons of other stuff, too).
Here’s a look at what Windows Services are, how it works, examples of Windows Services, and options for developers for configuring applications to run as a Service.
Windows Services are a core component of the Microsoft Windows operating system and enable the creation and management of long-running processes.
Unlike regular software that is launched by the end user and only runs when the user is logged on, Windows Services can start without user intervention and may continue to run long after the user has logged off. The services run in the background and will usually kick in when the machine is booted. Developers can create Services by creating applications that are installed as a Service, an option ideal for use on servers when long-running functionality is needed without interference with other users on the same system.
The services manage a wide variety of functions including network connections, speaker sound, data backup, user credentials and display colors. Windows Services perform a similar function as UNIX daemons.
Windows Services are managed via the Services Control Manager panel. The panel shows a list of services and for each, name, description, status (running, stopped or paused) and the type of service. Double clicking on a service reveals its properties in greater detail. You can stop, pause, start, delay start, or resume each service as appropriate. You can also modify the start mechanism (Manual or Automatic) or specify an account.
Windows Services broadly fall into three categories depending on the actions and applications they control: Local Services, Network Services and System. Third party applications such as antivirus software may also install their own services.
Services can be deleted by a user with administrative privileges, but as doing so can render the operating system unstable, it should be done only when necessary and with caution.
Developers often use Services for functions that are necessary to run in the background, such as the ability to monitor performance data and react to specified thresholds. Services can also be created as Microsoft Visual Studio projects, developing code that specifies what commands can be sent to the service as well as what actions are taken on receipt of those commands. For more specifics on using Visual Studio projects to create Services, check out our recent post on how to create .NET Core Windows Services with Visual Studio 2017.
After creating and building an application, you can install it as a service by running the command-line utility InstallUtil.exe, then passing the path to the Service’s executable file. Then, use the Services Control Manager to configure the Service. Alternatively, services can be configured using the Services node in Server Explorer or with the ServiceController class. Check out our sample Windows Services project on GitHub for examples of timer-based events, queue processing, and job scheduling – some of the more popular uses for Windows Services.
For more information on Windows Services, including helpful Windows Services tutorials and guides, visit the following resources: