Зависимости <приложения ApplicationDependencies>

Общие сведения

Элемент <applicationDependencies><элемента безопасности> работает совместно с элементом <isapiCgiRestriction> , чтобы определить, какие приложения имеют зависимости от одного или нескольких ограничений расширения CGI или ISAPI. Если приложение содержится в этом элементе , оно имеет зависимости от элемента (или нескольких элементов) в элементе <isapiCgiRestriction> .

Совместимость

Версия Примечания
IIS 10.0 Элемент <applicationDependencies> не был изменен в IIS 10.0.
IIS 8,5 Элемент <applicationDependencies> не был изменен в IIS 8.5.
IIS 8,0 Элемент <applicationDependencies> не был изменен в IIS 8.0.
IIS 7,5 Элемент <applicationDependencies> не был изменен в IIS 7.5.
IIS 7.0 Элемент <applicationDependencies> элемента появился <security> в IIS 7.0.
IIS 6,0 Элемент <applicationDependencies> заменяет атрибут IIS 6.0 ApplicationDependencies объекта метабазы IIsWebService .

Настройка

Элемент <applicationDependencies> включен в установку iis 7 по умолчанию.

Инструкции

Отсутствует пользовательский интерфейс для настройки <applicationDependencies> элемента для IIS 7. Примеры настройки <applicationDependencies> элемента программными средствами см. в разделе Примеры кода этого документа.

Конфигурация

Атрибуты

Отсутствует.

Дочерние элементы

Элемент Описание
application Необязательный элемент.

Указывает приложение, которое имеет зависимости от ограничения расширения CGI или ISAPI.
clear Необязательный элемент.

Удаляет все ссылки на приложения из коллекции applicationDependencies .

Образец конфигурации

В следующем примере конфигурации показаны зависимости приложения в <applicationDependencies> элементе веб-сайта по умолчанию и связанные записи в <isapiCgiRestriction> после установки Active Server Pages (ASP) и пользовательского приложения в IIS 7:

  • Приложение Active Server Pages зависит от группы ограничений ISAPI/CGI "ASP".
  • Пользовательское приложение имеет зависимость от группы ограничений ISAPI/CGI "MyCustomGroup" и дополнительную зависимость от группы ограничений ISAPI/CGI ASP.
<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>

Пример кода

В следующем примере конфигурации показаны зависимости приложения в элементе <applicationDependencies> веб-сайта по умолчанию. Пользовательское приложение имеет зависимость от группы ограничений ISAPI/CGI "MyCustomGroup" и дополнительную зависимость от группы ограничений ISAPI/CGI ASP.

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

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.

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()