Installing and Uninstalling CGI and ISAPI Extensions

New ISAPI and CGI DLLs must be added to the Web service extension restriction list (WSERL) before IIS can execute them. The WSERL is contained in the WebSvcExtRestrictionList metabase property, and it can be configured programmatically or through IIS Manager.

When configuring WebSvcExtRestrictionList programmatically, it is recommended that the ADSI or WMI providers be used instead of ABO. The ADSI and WMI methods are easier to use and do their own error checking.

IIS 5.1 and earlier: The WebSvcExtRestrictionList metabase property is not available, and therefore this topic does not apply.

To install or uninstall a new DLL through IIS Manager:

  1. In IIS Manager, click local computer..

  2. Click Web Service Extensions.

  3. In the details pane, in the Tasks menu, click either Add a new Web service extension, Allow all Web service extensions for a specific application, or Prohibit all Web service extensions.

  4. Follow the instructions in the wizard.

Steps to install a new DLL programmatically:

  1. Add the new DLL to the WebSvcExtRestrictionList metabase property by using the AddExtensionFile method. This does not affect the ApplicationDependencies metabase property.

  2. If the DLL does not depend on an existing group, list the DLL and a new group name in the ApplicationDependencies metabase property by using the AddDependency method.

  3. If the DLL depends on an existing group, add it to the group in the ApplicationDependencies metabase property by using the AddDependency method. Check if the group is already enabled. The group will need to be enabled in order to enable the DLL, so if your installation application will be run by a customer, it would be prudent to display a warning.

  4. Enable the group of applications if they are not already enabled, by using the EnableWebServiceExtension method.

Steps to uninstall a new DLL programmatically:

  1. If the DLL did not depend on an existing group when it was installed, check if there are other DLLs installed that depend on your DLL by using the QueryGroupIDStatus method. if your uninstall application will be run by a customer, it would be prudent to display a warning.

  2. Remove each of your DLLs from the WebSvcExtRestrictionList metabase property by using the DeleteExtensionFileRecord method for each DLL.

  3. Remove the group from the ApplicationDependencies metabase property by using the RemoveDependency method.

See Also