Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
Элемент <add><handlers> коллекции добавляет обработчик в список обработчиков HTTP для служб IIS 7.
Compatibility
| Версия | Примечания. |
|---|---|
| IIS 10.0 | Элемент <add> не был изменен в IIS 10.0. |
| IIS 8.5 | Элемент <add> не был изменен в IIS 8.5. |
| IIS 8.0 | Элемент <add> не был изменен в IIS 8.0. |
| IIS 7.5 | Элемент <add> не был изменен в IIS 7.5. |
| IIS 7.0 | Элемент <add><handlers> коллекции появился в IIS 7.0. |
| IIS 6.0 | N/A |
Настройка
Элемент <add><handlers> коллекции включен в установку IIS 7 по умолчанию.
Как сделать
Создание сопоставления обработчика для обработчика ASP.NET в приложении IIS 7, работающем в интегрированном режиме
Откройте диспетчер служб IIS:
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
Если вы используете Windows 8 или Windows 8.1:
- Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
- Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и выберите диспетчер служб IIS.
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку "Пуск" и нажмите кнопку "Панель управления".
- Дважды щелкните " Администрирование" и дважды щелкните диспетчер служб IIS.
В области "Подключения" щелкните подключение к серверу, к которому нужно добавить собственный модуль.
На панели "Главная" дважды щелкните сопоставления обработчиков.
На панели "Действия" нажмите кнопку "Добавить управляемый обработчик" ...
В диалоговом окне "Добавление управляемого обработчика" укажите следующее:
Путь запроса. Имя файла или расширение имени файла для сопоставления.
Type. Имя типа (класса) управляемого обработчика. Если обработчик определен в app_code или папках bin приложения, его имя типа появится в раскрывающемся списке.
Имя. Описательное имя.
Нажмите кнопку "ОК ", чтобы закрыть диалоговое окно "Добавить управляемый обработчик ".
Создание сопоставления обработчика FastCGI
Откройте диспетчер служб IIS:
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
Если вы используете Windows 8 или Windows 8.1:
- Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
- Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и выберите диспетчер служб IIS.
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку "Пуск" и нажмите кнопку "Панель управления".
- Дважды щелкните " Администрирование" и дважды щелкните диспетчер служб IIS.
В области "Подключения" щелкните имя сервера, для которого необходимо настроить сопоставления обработчиков FastCGI.
На панели "Главная" дважды щелкните сопоставления обработчиков.
В области "Действия" нажмите кнопку "Добавить сопоставление модулей" ...
Замечание
Чтобы выполнить следующие действия, необходимо уже установить двоичные файлы, которые будут выполнять указанный путь к файлу или расширение имени файла. В этом примере используется реализация PHP, доступная на веб-сайте Майкрософт.
Введите расширение имени файла, например as.php в поле пути запроса , щелкните FastCGIModule в раскрывающемся списке модуля , введите путь к обработчику сценариев (в этом примере PHP-CGI.exe) в поле исполняемого файла и нажмите кнопку "ОК".
В диалоговом окне "Добавление сопоставления модулей " нажмите кнопку "Да".
Конфигурация
Attributes
| Свойство | Description | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
allowPathInfo |
Дополнительный логический атрибут. Указывает, обрабатывает ли обработчик полный путь в URI, например contoso/marketing/imageGallery.aspx. Если значение равно true, обработчик обрабатывает полный путь, contoso/marketing/imageGallery. Если значение равно false, обработчик обрабатывает только последний раздел пути /imageGallery. Значение по умолчанию — false. |
||||||||||||||
modules |
Необязательный строковый атрибут. Указывает имя модуля или модулей, с которым нужно сопоставить имя файла или имя файла с расширением. Если указать несколько значений, разделите значения запятыми (,). Значение по умолчанию — ManagedPipelineHandler. |
||||||||||||||
name |
Обязательный строковый атрибут. Задает уникальное имя сопоставления обработчика. |
||||||||||||||
path |
Обязательный строковый атрибут. Указывает имя файла или расширение имени файла, для которого применяется сопоставление обработчика. |
||||||||||||||
preCondition |
Необязательный строковый атрибут. Указывает условия, в которых будет выполняться обработчик. Атрибут preCondition может быть одним или несколькими из следующих возможных значений. Если указать несколько значений, разделите значения запятыми (,).
|
||||||||||||||
requireAccess |
Необязательный атрибут перечисления. Указывает уровень доступа, на котором будет выполняться обработчик. Атрибут requireAccess может быть одним или несколькими из следующих возможных значений. Если указать несколько значений, разделите значения запятыми (,). Значение по умолчанию — Script. Примечание: Даже если значение requireAccess обработчика не соответствует текущему accessPolicy уровню, оно остается частью настроенного набора обработчиков и может быть инициализировано, хотя оно не будет выполнено.
|
||||||||||||||
resourceType |
Необязательный строковый атрибут. Указывает тип ресурса, к которому применяется сопоставление обработчика. Атрибут resourceType может быть одним из следующих возможных значений. Значение по умолчанию — Unspecified.
|
||||||||||||||
responseBufferLimit |
Необязательный атрибут uint. Задает максимальный размер буфера ответа в байтах для обработчика запросов. Значение по умолчанию — 4194304 байт. |
||||||||||||||
scriptProcessor |
Необязательный строковый атрибут. Указывает физический путь к файлу .dll расширения ISAPI или файлу C .exe GI, который обрабатывает запрос. Атрибут scriptProcessor требуется только для сопоставлений обработчиков карт скриптов. При сопоставлении обработчика с расширением ISAPI необходимо указать ISAPIModule для атрибута модулей. При сопоставлении обработчика с файлом CGI необходимо указать CGIModule для атрибута модулей. |
||||||||||||||
type |
Необязательный строковый атрибут. Указывает путь к пространству имен управляемого обработчика. Атрибут типа требуется только для управляемых обработчиков. |
||||||||||||||
verb |
Обязательный строковый атрибут. Указывает HTTP-команды, для которых применяется сопоставление обработчика. |
Дочерние элементы
Нет.
Пример конфигурации
В следующем примере содержатся два <add> элемента, определяющие сопоставления обработчиков. Первый <add> элемент определяет обработчик SampleHandler для веб-приложения, работающего в интегрированном режиме IIS 7. Если добавить сборку обработчика в каталог app_code веб-приложения, вам не нужно включать имя сборки в значение атрибута типа . Второй <add> элемент определяет сопоставление запросов PHP, использующих модуль FastCGI.
<handlers>
<add name="SampleHandler" verb="*"
path="SampleHandler.new"
type="SampleHandler, SampleHandlerAssembly"
resourceType="Unspecified" />
<add name="PHP-FastCGI" verb="*"
path="*.php"
modules="FastCgiModule"
scriptProcessor="c:\php\php-cgi.exe"
resourceType="Either" />
</handlers>
Пример кода
В следующих примерах добавляется сопоставление FastCGI для модуля PHP, а затем добавьте обработчик на веб-сайте Contoso, который будет обрабатывать запросы PHP.
AppCmd.exe
appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='c:\php\php-cgi.exe']" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='c:\php\php-cgi.exe',resourceType='Either']"
Замечание
Во втором примере показано, как добавить новое сопоставление обработчика ASP.NET с именем SampleHandler.new для определенного URL-адреса в веб-приложение.
appcmd.exe set config /section:system.webServer/handlers /+[name=SampleHandler',path='SampleHandler.new',verb='*',type='SampleHandler']
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration appHostConfig = serverManager.GetApplicationHostConfiguration();
ConfigurationSection fastCgiSection = appHostConfig.GetSection("system.webServer/fastCgi");
ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
ConfigurationElement applicationElement = fastCgiCollection.CreateElement("application");
applicationElement["fullPath"] = @"c:\php\php-cgi.exe";
fastCgiCollection.Add(applicationElement);
Configuration webConfig = serverManager.GetWebConfiguration("Contoso");
ConfigurationSection handlersSection = webConfig.GetSection("system.webServer/handlers");
ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
ConfigurationElement addElement = handlersCollection.CreateElement("add");
addElement["name"] = @"PHP-FastCGI";
addElement["path"] = @"*.php";
addElement["verb"] = @"GET,HEAD,POST";
addElement["modules"] = @"FastCgiModule";
addElement["scriptProcessor"] = @"c:\php\php-cgi.exe";
addElement["resourceType"] = @"Either";
handlersCollection.AddAt(0, addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim appHostConfig As Configuration = serverManager.GetApplicationHostConfiguration
Dim fastCgiSection As ConfigurationSection = appHostConfig.GetSection("system.webServer/fastCgi")
Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
applicationElement("fullPath") = "c:\php\php-cgi.exe"
fastCgiCollection.Add(applicationElement)
Dim webConfig As Configuration = serverManager.GetWebConfiguration("Contoso")
Dim handlersSection As ConfigurationSection = webConfig.GetSection("system.webServer/handlers")
Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
Dim addElement As ConfigurationElement = handlersCollection.CreateElement("add")
addElement("name") = "PHP-FastCGI"
addElement("path") = "*.php"
addElement("verb") = "GET,HEAD,POST"
addElement("modules") = "FastCgiModule"
addElement("scriptProcessor") = "c:\php\php-cgi.exe"
addElement("resourceType") = "Either"
handlersCollection.AddAt(0, addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST");
var fastCgiCollection = fastCgiSection.Collection;
var applicationElement = fastCgiCollection.CreateNewElement("application");
applicationElement.Properties.Item("fullPath").Value = "c:\\php\\php-cgi.exe";
fastCgiCollection.AddElement(applicationElement);
adminManager.CommitChanges();
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso");
var handlersCollection = handlersSection.Collection;
var addElement = handlersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "PHP-FastCGI";
addElement.Properties.Item("path").Value = "*.php";
addElement.Properties.Item("verb").Value = "GET,HEAD,POST";
addElement.Properties.Item("modules").Value = "FastCgiModule";
addElement.Properties.Item("scriptProcessor").Value = "c:\\php\\php-cgi.exe";
addElement.Properties.Item("resourceType").Value = "Either";
handlersCollection.AddElement(addElement, 0);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST")
Set fastCgiCollection = fastCgiSection.Collection
Set applicationElement = fastCgiCollection.CreateNewElement("application")
applicationElement.Properties.Item("fullPath").Value = "c:\php\php-cgi.exe"
fastCgiCollection.AddElement applicationElement
adminManager.CommitChanges()
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso")
Set handlersCollection = handlersSection.Collection
Set addElement = handlersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "PHP-FastCGI"
addElement.Properties.Item("path").Value = "*.php"
addElement.Properties.Item("verb").Value = "GET,HEAD,POST"
addElement.Properties.Item("modules").Value = "FastCgiModule"
addElement.Properties.Item("scriptProcessor").Value = "c:\php\php-cgi.exe"
addElement.Properties.Item("resourceType").Value = "Either"
handlersCollection.AddElement addElement, 0
adminManager.CommitChanges()