In IIS/ASP.NET or for that matter Favorite container and execution logic the idea of monitoring/availability is usually separated out. Unfortunately this creates a chasm between developers and the administrators. For last 3-4 years in good companies this chasm is breaching but the tool has to enable or internalize this requirement.
Yahoo’s node.js monitoring piece shows how this can be integrated as part of the application.
IIS ‘s stuff will be spread across config files for iis and apppool settings in %WINDIR%\system32\inetsrv\config and has been little more sophisticated for detecting health issues and recycling options – throttling.
We always request at MTC for folks to go through deployment as if their life depends on it and script out/test the configuration. Unfortunately where communication/interaction between 2 worlds is not smooth (my config is x and better or “is standard”) there are issues. Sadly these are also the places where people tend to point fingers at stack rather than own up and smooth out the process.
For daemon kind of apps on linux – monit and friends do this job – It is more of a generic solution as monit can be used for any process/file etc.