Mike Volodarsky's blog

Formerly the core server PM for IIS 7.0 and ASP.NET, now I run LeanSentry.
UPDATES: New troubleshooting guide released! Fix IIS website hangs →

Caution when stopping and starting an IIS application pool with appcmd

When starting and stopping IIS 7 application pools from command line with appcmd.exe, you should be aware of a behavior that can sometimes lead to unintended circumstances.

To explain it, lets first review what happens when you stop an application pool with the InetMgr.exe tool:

1) Set the autoStart property of the <applicationPool> configuration element to false.  This causes WAS to not start any worker processes when a new request to an application mapped to the application pool arrives.

2) Call IIS RSCA (runtime status and control API) to stop the application pool, which instructs all w3wp.exe processes in that application pool to shut down (gracefully at first, then killed if they exceed the shutdownTimeLimit).  WAS will remember that the apppool is stopped while it is loaded, and any subsequent requests to the apppool will return a 503.

These are two logical actions - #2 being a transient action to terminate the apppool's current processes, and #1 being a persistent directive not to start the apppool.


Enabling Fast, Reliable, and Super-Scalable Uploads in ASP.NET, ASP, and PHP applications

Uploads have always historically been a major pain point for web applications, due to poor performance, spotty reliability, and framework-specific limitations. As more and more websites rely on social networking, user generated content, and in general storing data in the cloud, the ability to support reliable and scalable uploads is rapidly becoming more critical than ever.

After working with many clients to help solve these problems, LeanServer is announcing ScaleUP - a breakthrough web upload solution for the Microsoft IIS platform that finally enables fast, reliable, and super-scalable HTTP uploads to any web application.

Making uploads work

We designed ScaleUP to power uploads in some of the largest web sites in the world – such as myspace.com’s media farm that handles over 25M photo, song, and video uploads a day – while significantly reducing server costs.

ScaleUP is unique in that it is able to fundamentally replace the platform’s upload process, enabling upload reliability and scalability characteristics that existing upload managers simply could not attain.

As a result, ScaleUP allows any existing ASP.NET, ASP, PHP, or other IIS 7.0 compatible application to achieve:

  • Up to 20x faster upload speeds [1]
  • Reliable uploads of unlimited size (4Gb+)
  • Reduced application impact (no thread starvation, lower disk usage, etc)
  • Scaling to THOUSANDS of active uploads on a single server
  • Full support for streaming, filtering, server-side progress reporting, and other common upload features [1]
  • Transparent support for ASP, ASP.NET, PHP, and any other IIS 7.0-compatible application (regardless of framework upload limitations)

To make this happen, we had to fundamentally redesign the platform’s upload process, leveraging the IIS 7.0 low level extensibility layer to handle request uploads with our own high-performance upload engine.