1 out of 1 rated this helpful - Rate this topic

ServiceBase.OnShutdown Method

When implemented in a derived class, executes when the system is shutting down. Specifies what should occur immediately prior to the system shutting down.

Namespace:  System.ServiceProcess
Assembly:  System.ServiceProcess (in System.ServiceProcess.dll)
protected virtual void OnShutdown()

Use OnShutdown to specify the processing that occurs when the system shuts down.

This event occurs only when the operating system is shut down, not when the computer is turned off.

OnShutdown is expected to be overridden when the CanShutdown property is true.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
additional considerations
it means when the operating system is shutdown by the start button for example. if a user just turns off the computer (hard boot), the operating system might not (read, probably not), be able to fire the appropriate events and notifications.

note: when testing this functionality, it's adviseable to make sure that you are not trying to write to the event log or use some other service during this process, as it may not be running at the time you are trying to log events etc, potentially giving misleading results. addtionally, when writing a log file; the appropriate service rights would be required, otherwise the same is true.
More details needed
Please, add detailed explanation what means "... when the operating system is shut down, not when the computer is turned off."