Включение <сервера serverSideInclude>

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

Элемент <serverSideInclude> указывает, отключены ли директивы SSI #exec на стороне сервера для служб IIS 7.

В частности, <serverSideInclude> элемент содержит один атрибут: ssiExecDisable. Если задать для атрибута ssiExecDisableзначение true , директива SSI #exec для IIS 7 будет отключена, что не позволит файлам SSI выполнять программы, скрипты или команды оболочки на сервере.

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

Версия Примечания
IIS 10.0 Элемент <serverSideInclude> не был изменен в IIS 10.0.
IIS 8,5 Элемент <serverSideInclude> не был изменен в IIS 8.5.
IIS 8,0 Элемент <serverSideInclude> не был изменен в IIS 8.0.
IIS 7,5 Элемент <serverSideInclude> не был изменен в IIS 7.5.
IIS 7.0 Элемент <serverSideInclude> появился в IIS 7.0.
IIS 6,0 Элемент <serverSideInclude> заменяет свойство метабазы IIS 6.0 SSIExecDisable .

Примечание

Директива cmd для #exec отключена для файлов SSI в IIS 7; Можно использовать только директиву cgi. Например, можно использовать следующую команду с директивой cgi :

<!--#exec cgi="/HITCOUNTER.EXE"-->

Но вы больше не можете использовать следующую команду с директивой cmd :

<!--#exec cmd="dir /b"-->

При попытке использовать директиву cmd в SSI-файлах в IIS 7 вы получите следующее сообщение об ошибке:

Параметр CMD не включен для #EXEC вызовов

Настройка

Элемент <serverSideInclude> недоступен в стандартной установке IIS 7 и более поздних версий. Чтобы установить его, выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, узел Разработка приложений, а затем выберите Серверные компоненты. Щелкните Далее.
    Снимок экрана: серверные компоненты, выбранные в разделе Разработка приложений в развернутых списках веб-серверов и веб-серверов. .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.
  3. Разверните узел Службы IIS, Веб-службы, Компоненты разработки приложений, а затем выберите Компоненты на стороне сервера.
    Снимок экрана: серверные компоненты, выбранные в интерфейсе Windows 8.
  4. Нажмите кнопку ОК.
  5. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
  3. В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите Компоненты на стороне сервера и нажмите кнопку Далее.
    Снимок экрана: серверные компоненты, выбранные в разделе Разработка приложений в развернутом списке веб-серверов.
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, выберите Серверные компоненты и нажмите кнопку ОК.
    Снимок экрана: серверные компоненты, выбранные в интерфейсе Windows Vista или Windows 7.

Инструкции

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

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

Атрибуты

Атрибут Описание
ssiExecDisable Дополнительный логический атрибут.

Указывает, включена ли директива SSI #exec (false) или отключена (true). Если этот параметр отключен, директива не может выполнять программу, скрипт или команду оболочки на сервере.

Значение по умолчанию — false.

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

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

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

Следующий пример конфигурации отключает команду #exec для файлов SSI на веб-сайте по умолчанию.

<location path="Default Web Site">
   <system.webServer>
      <serverSideInclude ssiExecDisable="true" />
   </system.webServer>
</location>

Пример кода

В следующих примерах кода команда #exec отключена для файлов SSI на веб-сайте по умолчанию.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/serverSideInclude /ssiExecDisable:"True" /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 serverSideIncludeSection = config.GetSection("system.webServer/serverSideInclude", "Default Web Site");
         serverSideIncludeSection["ssiExecDisable"] = true;

         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 serverSideIncludeSection As ConfigurationSection = config.GetSection("system.webServer/serverSideInclude", "Default Web Site")
      serverSideIncludeSection("ssiExecDisable") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var serverSideIncludeSection = adminManager.GetAdminSection("system.webServer/serverSideInclude", "MACHINE/WEBROOT/APPHOST/Default Web Site");
serverSideIncludeSection.Properties.Item("ssiExecDisable").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set serverSideIncludeSection = adminManager.GetAdminSection("system.webServer/serverSideInclude", "MACHINE/WEBROOT/APPHOST/Default Web Site")
serverSideIncludeSection.Properties.Item("ssiExecDisable").Value = True

adminManager.CommitChanges()