Applications hosted on Windows cells (particularly .NET Framework) that need to have a graceful shutdown process, this article explains the behavior of shutdown process running on Windows cells based on Windows Server.
Stopping (e.g. cf stop or cf delete) applications on Windows cells can leave behind ghost connections and pending transactions which could lead to the application in an inconsistent state.
This does not affect .NET Core applications deployed on Linux cells.
.NET Framework and Windows applications hosted on PCF Runtime for Windows, PAS for Windows, and PAS for Windows 2012R2, application processes are forcefully terminated.
In PAS, the platform implementation for graceful shutdown takes advantage of the Linux SIGTERM signal. There is no equivalent on Windows, and equivalent implementations that use Ctrl-C are not possible with the IronFrame containerizer deployed with PAS for Windows 2012R2.
See the original public tracker story documenting this behavior: https://www.pivotaltracker.com/story/show/153491349
On PAS for Windows, which uses Windows Server containers delivered in Windows Server, version 1709, and Windows Server, version 1803, a similar limitation exists. Currently, we are expecting Windows Server containers to deliver a similar graceful shutdown behavior in Windows Server 2019, support for which is still under consideration.
Note: this does not affect .NET Core applications hosted on Linux cells, which take advantage of the SIGTERM behavior and a 10-second grace period afforded to Linux containers. [1]