In the past, common gateway interface (CGI) applications have been loaded by IIS on an individual basis. The main reason for this was security and stability. Although an ISAPI could be loaded into its own separate memory space and be relatively safe, CGI applications were seen as unknown quantities.
For some sites and extensions, this caused a bottleneck because the only way to support a CGI script was through this single execution model system. Some traditionally CGI-based systems, such as Perl, got around this by producing an ISAPI alternative for running Perl scripts.
However, for non-ISAPI solutions, the problem remained. IIS 6 has removed this restriction by enabling CGI applications to be loaded and executed simultaneously. The worker process model supports this functionality?because each worker process is seen as an isolated solution and can be individually monitored and restarted, the dangers of executing CGI scripts have been eliminated. Meanwhile, the performance of this model has improved.