ISAPI Caching Is Disabled

[This topic is intended to address a specific issue called out by the Exchange Server Analyzer Tool. You should apply it only to systems that have had the Exchange Server Analyzer Tool run against them and are experiencing that specific issue. The Exchange Server Analyzer Tool, available as a free download, remotely collects configuration data from each server in the topology and automatically analyzes the data. The resulting report details important configuration issues, potential problems, and nondefault product settings. By following these recommendations, you can achieve better performance, scalability, reliability, and uptime. For more information about the tool or to download the latest versions, see "Microsoft Exchange Analyzers" at https://go.microsoft.com/fwlink/?linkid=34707.]  

Topic Last Modified: 2008-04-24

The Microsoft Exchange Server Analyzer uses the following Exchange Management Shell cmdlets to query for the value of the VirtualDirectoryName and WebsiteName properties of any target Exchange 2007 servers:

Get-ActiveSyncVirtualDirectory
Get-AutodiscoverVirtualDirectory
Get-WebServicesVirtualDirectory
Get-OwaVirtualDirectory
Get-OabVirtualDirectory
Get-UMVirtualDirectory

The VirtualDirectoryName parameter returns a string that defines the name of the virtual directory and the WebsiteName parameter returns a string that defines the name of the Exchange Web site.

The Exchange Server Analyzer tool then queries the Internet Information Services (IIS) metabase for the value of the CacheISAPI property from the following locations:

  • /LM/W3SVC/n/ROOT/virtual_directory_name/

  • /LM/W3SVC/n/ROOT/website/

The CacheISAPI property indicates whether Internet Server Application Programming Interface (ISAPI) extensions are cached in memory after first use. If the value of this property is set to 1, ISAPI extensions, once loaded, remain in the cache until the server is stopped. If the value is set to 0, extensions are unloaded from memory after the ISAPI extension is no longer in use.

If the Exchange Server Analyzer determines that an instance of the CacheISAPI property for either location has a value of 0, the Exchange Server Analyzer displays an error.

An ISAPI extension is a C++ or Visual Basic® DLL file which implements a specific API. This specific API allows the DLL to be plugged into a Web server where it dynamically processes requests and produces HTML output, which is returned to the client. The difference between ISAPI and ASP is that ASP is essentially interpreted and dynamically compiled by the server for every request to the page. With ISAPI, the code is pre-compiled and does not require any translation overhead. By translating ASP code into equivalent ISAPI code, the performance differences that can be produced are dramatic. Commonly they are two to ten times greater in terms of page throughput.

Exchange requires certain ISAPI extensions for features such as Microsoft Outlook Web Access, WebDAV, and Exchange Web Forms. If the CacheISAPI property is set to 0, certain parts of Exchange may not function correctly.

To address this error, use the ADSutil.vbs administration script to re-enable ISAPI extension caching for the website or virtual directory specified.

To re-enable ISAPI Extension caching for the virtual directory

  • Click Start, Run, and type:

    C:\Inetpub\AdminScripts>cscript.exe adsutil.vbs set W3SVC/n/ROOT/virtual_directory_name/cacheisapi 1
    

To re-enable ISAPI Extension caching for the web site

  • Click Start, Run, and type:

    C:\Inetpub\AdminScripts>cscript.exe adsutil.vbs set W3SVC/n/ROOT/website_name/cacheisapi 1