Applications for Application Dependencies <application>

Overview

The <application> element of the <applicationDependencies> element specifies an application that has dependencies on one or more CGI or ISAPI extension restrictions. Specifically, the groupID attribute of the <application> element specifies the primary application dependency, and the element may contain one or more <add> elements that specify additional dependencies.

Compatibility

Version Notes
IIS 10.0 The <application> element was not modified in IIS 10.0.
IIS 8.5 The <application> element was not modified in IIS 8.5.
IIS 8.0 The <application> element was not modified in IIS 8.0.
IIS 7.5 The <application> element was not modified in IIS 7.5.
IIS 7.0 The <application> element of the <applicationDependencies> element was introduced in IIS 7.0.
IIS 6.0 The <applicationDependencies> element replaces the IIS 6.0 ApplicationDependencies attribute of the IIsWebService metabase object.

Setup

The <application> element of the <applicationDependencies> element is included in the default installation of IIS 7.

How To

There is no user interface for configuring the <applicationDependencies> element for IIS 7. For examples of how to configure the <applicationDependencies> element programmatically, see the Code Samples section of this document.

Configuration

Attributes

Attribute Description
groupID Optional string attribute.

Specifies the groupID of the application that has a dependency on an extension restriction.

See the following Default Configuration section for the complete list of default values.
Name Required string attribute.

Specifies the unique name of the application that has a dependency on an extension restriction.

See the following Default Configuration section for the complete list of default values.

Child Elements

Element Description
add Optional element.

Adds additional groupIDs to the parent application.
clear Optional element.

Removes all references to additional groupIDs from the add collection.

Configuration Sample

The following configuration sample illustrates the application dependencies in the <applicationDependencies> element for the Default Web Site and the related entries in the <isapiCgiRestriction> after you install Active Server Pages (ASP) and a custom application on IIS 7:

  • The Active Server Pages application has a dependency on the "ASP" ISAPI/CGI restriction group.
  • The custom application has a dependency on the "MyCustomGroup" ISAPI/CGI restriction group, and an additional dependency on the ASP ISAPI/CGI restriction group.
<system.webServer>
   <security>
      <isapiCgiRestriction notListedIsapisAllowed="false" notListedCgisAllowed="false">
         <clear />
         <add allowed="true" groupId="ASP"
            path="C:\Windows\system32\inetsrv\asp.dll" 
            description="Active Server Pages" />
         <add allowed="true" groupId="MyCustomGroup"
            path="C:\Windows\system32\inetsrv\mycustom.dll"
            description="My Custom Application" />
      </isapiCgiRestriction>
   </security>
</system.webServer>

<location path="Default Web Site">
   <system.webServer>
      <security>
         <applicationDependencies>
            <application name="My Custom Application" groupId="MyCustomGroup">
               <add groupId="ASP" />
            </application>
         </applicationDependencies>
      </security>
   </system.webServer>
</location>

Sample Code

The following configuration sample illustrates the application dependencies in the <applicationDependencies> element for the Default Web Site. The custom application has a dependency on the "MyCustomGroup" ISAPI/CGI restriction group, and an additional dependency on the ASP ISAPI/CGI restriction group.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/security/applicationDependencies /+"[name='My Custom Application',groupId='MyCustomGroup']" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/security/applicationDependencies /+"[name='My Custom Application',groupId='MyCustomGroup'].[groupId='ASP']" /commit:apphost

Note

You must be sure to set the commit parameter to apphost when you use AppCmd.exe to configure these settings. This commits the configuration settings to the appropriate location section in the ApplicationHost.config file.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection applicationDependenciesSection = config.GetSection("system.webServer/security/applicationDependencies", "Default Web Site");

         ConfigurationElementCollection applicationDependenciesCollection = applicationDependenciesSection.GetCollection();
         ConfigurationElement applicationElement = applicationDependenciesCollection.CreateElement("application");
         applicationElement["name"] = @"My Custom Application";
         applicationElement["groupId"] = @"MyCustomGroup";

         ConfigurationElementCollection applicationCollection = applicationElement.GetCollection();
         ConfigurationElement addElement = applicationCollection.CreateElement("add");
         addElement["groupId"] = @"ASP";
         applicationCollection.Add(addElement);
         applicationDependenciesCollection.Add(applicationElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim applicationDependenciesSection As ConfigurationSection = config.GetSection("system.webServer/security/applicationDependencies", "Default Web Site")

      Dim applicationDependenciesCollection As ConfigurationElementCollection = applicationDependenciesSection.GetCollection
      Dim applicationElement As ConfigurationElement = applicationDependenciesCollection.CreateElement("application")
      applicationElement("name") = "My Custom Application"
      applicationElement("groupId") = "MyCustomGroup"

      Dim applicationCollection As ConfigurationElementCollection = applicationElement.GetCollection
      Dim addElement As ConfigurationElement = applicationCollection.CreateElement("add")
      addElement("groupId") = "ASP"
      applicationCollection.Add(addElement)
      applicationDependenciesCollection.Add(applicationElement)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationDependenciesSection = adminManager.GetAdminSection("system.webServer/security/applicationDependencies", "MACHINE/WEBROOT/APPHOST/Default Web Site");

var applicationDependenciesCollection = applicationDependenciesSection.Collection;
var applicationElement = applicationDependenciesCollection.CreateNewElement("application");
applicationElement.Properties.Item("name").Value = "My Custom Application";
applicationElement.Properties.Item("groupId").Value = "MyCustomGroup";

var applicationCollection = applicationElement.Collection;
var addElement = applicationCollection.CreateNewElement("add");
addElement.Properties.Item("groupId").Value = "ASP";
applicationCollection.AddElement(addElement);
applicationDependenciesCollection.AddElement(applicationElement);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationDependenciesSection = adminManager.GetAdminSection("system.webServer/security/applicationDependencies", "MACHINE/WEBROOT/APPHOST/Default Web Site")

Set applicationDependenciesCollection = applicationDependenciesSection.Collection
Set applicationElement = applicationDependenciesCollection.CreateNewElement("application")
applicationElement.Properties.Item("name").Value = "My Custom Application"
applicationElement.Properties.Item("groupId").Value = "MyCustomGroup"

Set applicationCollection = applicationElement.Collection
Set addElement = applicationCollection.CreateNewElement("add")
addElement.Properties.Item("groupId").Value = "ASP"
applicationCollection.AddElement(addElement)
applicationDependenciesCollection.AddElement(applicationElement)

adminManager.CommitChanges()