Testing Applications for Functional Compatibility with IIS 6.0
Updated: August 22, 2005
Applies To: Windows Server 2003, Windows Server 2003 with SP1
You can test the functional compatibility of an application running in worker process isolation mode by installing the application on a test server, and then sending HTTP requests to the application from another computer. You can identify the following functional incompatibilities when you send correctly composed HTTP requests to applications that were developed for earlier versions of IIS, or to new applications yet to be tested.
ISAPIs Not Enabled in the Web Service Extensions Node
Some application setups install script maps for their script engine but do not enable the script engine, and the documentation for the application might not mention the need to set the properties (by using IIS Manager, for example).
If your log file (systemroot\system32\logfiles\w3svc\Filename.log) returns a 404 error with suberror code 2, then your application is trying to use a disabled ISAPI or Common Gateway Interface (CGI) file.
Use the Web Service Extensions node in IIS Manager to enable the ISAPI or CGI file. Be sure to enter the exact path entry that is in the scriptmaps setting in the path part of the entry.
MIME Types Incompatibility
Your application might use a file name extension that is not recognized by IIS 6.0.
If your WWW service log file, which is located in systemroot\system32\logfiles\w3svc\Filename.log, returns a 404 error with suberror code 3, then a file name extension is not recognized by IIS 6.0.
Manually add the file name extension to the computer-level properties in IIS Manager. For more information about configuring MIME types, see Configure MIME Types.
The configurable recycling feature in IIS 6.0 might expose some design flaws in your applications. The most common problem is that applications take too long to start up or to shut down. For example, it is not a problem in IIS 5.0 if an application receives an access violation when shutting down. However, an IIS 6.0 administrator might see error messages in the Event log indicating that the application pool is taking too long to shut down. If the application needs to warm up when it starts up, then recycling causes the application to run at low efficiency every time it starts up. If the application does not save its state data when it shuts down, it loses state data often. Test the impact of the recycling period by configuring it to a shorter time and continuing to check the log.
You can identify recycling incompatibility problems by testing the worker process with a short recycle period. If problems exist in the applications in the application pool that is served by the worker process, the following symptoms might occur:
If an application is shutting down slowly, the Event log might contain error messages indicating that the worker process is exceeding its shutdown time limit.
If the application needs time to warm up when it starts, response times might be very slow at first.
The application might require extensive modification. While running the application unmodified, you cannot use recycling. For more information about configuring the features for worker process recycling, see Configure Application Pool Recycling.
Overlapped Recycling and Single Instance Application Incompatibility
If your application cannot run as multiple instances, overlapped recycling fails. The failure occurs because the new worker process is running before the existing worker process is terminated, resulting in an attempt to run two instances of the same application.
The symptoms are synchronization-related, such as an access denied error that appears in the IIS log (in \\Windows\System32\LogFiles\W3SVCxxx).
Do not use overlapped recycling. For more information about configuring the features for recycling worker processes, see Configure Application Pool Recycling.
Subauthentication Is Not Installed
Subauthentication is not installed by default. You require subauthentication if both of the following are true:
You are using Digest authentication on your server running IIS 6.0.
The domain controller is running IIS 5.0.
Digest authentication fails.
Install subauthentication on your server. For information about how to install subauthentication, see Install Subauthentication.