Сервер среды выполнения <сервераRuntime>
Общие сведения
Элемент <serverRuntime>
настраивает следующие параметры, связанные с серверной средой выполнения служб IIS 7:
Если для атрибута enabledзадано значение true , iis 7 будут настроены для обслуживания содержимого по URL-адресу,
<serverRuntime>
в котором настроен элемент; если задать для атрибута enabledзначение false , служба IIS 7 не будет обслуживать содержимое для этого URL-адреса.Атрибут alternateHostName задает имя узла, отличное от имени компьютера в заголовке HTTP Content-location.
Атрибут appConcurrentRequestLimit указывает максимальное количество одновременных запросов, которые можно поместить в очередь для приложения.
Атрибут enableNagling включает или отключает nagling, что является оптимизацией для HTTP по ПРОТОКОЛу TCP, что повышает эффективность, пытаясь свести к минимуму количество пакетов, необходимых перед отправкой данных . Он работает, ожидая отправки пакета, пока его область данных не будет заполнена, пока не истечет 200 миллисекунда времени ожидания или пока отправитель не укажет, что отправка данных завершена. СЛУЖБЫ IIS версии 5.1 и более ранних версий используют nagling для всех данных, отправляемых клиенту.
Примечание
Наглинг имеет возможный недостаток; Если расширение не заполняет пакет, перед отправкой ответа по-прежнему возникает задержка в 200 миллисекундах. Такое поведение чаще всего наблюдается при использовании расширений ISAPI, поддерживающих заголовок HTTP Keep-Alive в ответе клиенту. В этом случае IIS не закрывает подключение после ответа, поэтому окончательный пакет ожидает 200 миллисекунда.
IIS 7 проверяет состояние двух атрибутов, чтобы определить уровень трафика для определенного URL-адреса. Атрибут frequentHitThreshold настраивает количество запросов, а атрибут frequentHitTimePeriod — время, отведенное до того, как этот URL-адрес будет считаться часто встречающимся. Эти сведения используются при написании модулей HTTP, которые используют эти сведения для обработки. Дополнительные сведения см. в статье Метод IHttpUrlInfo::IsFrequentlyHit .
Атрибуты maxRequestEntityAllowed и uploadReadAheadSize соответственно настраивают ограничения для максимального числа байтов, разрешенного в теле сущности запроса, и количества байтов, которые веб-сервер считывает в буфер и передает расширению ISAPI. Следует учитывать, что увеличение этих значений позволяет конечному пользователю отправлять больше содержимого, что может повлиять на ресурсы памяти среды выполнения IIS. Рекомендуется поддерживать эти значения в соответствии с потребностями приложения и использовать максимальное значение только в крайних случаях.
Новые возможности в IIS 7.5
СЛУЖБЫ IIS 7.5 добавили атрибут authenticatedUserOverride к элементу <serverRuntime>
, который указывает, будет ли среда выполнения сервера IIS 7 предоставлять удостоверение прошедшего проверку подлинности пользователя или удостоверение рабочего процесса в методах IHttpUser::GetPrimaryToken и IHttpUser::GetImpersonationToken . Для этого атрибута можно задать значение UseAuthenticatedUser или UseWorkerProcessUser, и эти значения соответственно указывают, будет ли среда выполнения сервера IIS 7 предоставлять удостоверение пользователя, прошедшего проверку подлинности, или удостоверение рабочего процесса для любого модуля, использующем олицетворение.
Совместимость
Версия | Примечания |
---|---|
IIS 10.0 | Элемент <serverRuntime> не был изменен в IIS 10.0. |
IIS 8,5 | Элемент <serverRuntime> не был изменен в IIS 8.5. |
IIS 8,0 | Элемент <serverRuntime> не был изменен в IIS 8.0. |
IIS 7,5 | Атрибут authenticatedUserOverride был добавлен в IIS 7.5. |
IIS 7.0 | Элемент <serverRuntime> появился в IIS 7.0. |
IIS 6,0 | Элемент <serverRuntime> заменяет следующие свойства метабазы IIS 6.0:
|
Настройка
Элемент <serverRuntime>
включен в установку iis 7 по умолчанию.
Инструкции
Отсутствует пользовательский интерфейс, позволяющий настроить <serverRuntime>
элемент для IIS 7. Примеры настройки <serverRuntime>
элемента программными средствами см. в разделе Примеры кода этого документа.
Конфигурация
Атрибуты
Атрибут | Описание | ||||||
---|---|---|---|---|---|---|---|
alternateHostName |
Необязательный строковый атрибут. Указывает имя узла, используемого для перенаправления. |
||||||
appConcurrentRequestLimit |
Необязательный атрибут uint. Указывает максимальное количество запросов, которые можно поместить в очередь для приложения. Значение по умолчанию — 5000 . |
||||||
authenticatedUserOverride |
Необязательный атрибут перечисления. Указывает, будет ли среда выполнения сервера IIS 7 предоставлять удостоверение пользователя, прошедшего проверку подлинности, или удостоверение рабочего процесса для модулей, использующих олицетворение. Примечание: Этот атрибут был добавлен в IIS 7.5.
UseAuthenticatedUser . |
||||||
enabled |
Необязательный атрибут boolean . Указывает, могут ли приложения на веб-сервере обслуживать содержимое (true) или не могут обслуживать содержимое (false). Значение по умолчанию — true . |
||||||
enableNagling |
Необязательный атрибут boolean . Указывает, включена ли функция nagling (true) или отключена (false). Значение по умолчанию — false . |
||||||
frequentHitThreshold |
Необязательный атрибут uint. Указывает количество запрашиваемых URL-адресов в пределах интервала времени, указанного в атрибуте frequentHitTimePeriod , который будет считаться часто встречаемым. Значение должно быть от 1 до 2147483647. Значение по умолчанию — 2 . |
||||||
frequentHitTimePeriod |
Необязательный атрибут timeSpan. Указывает интервал времени, в течение которого URL-адрес должен запрашиваться, количество раз, указанное в атрибуте frequentHitThreshold , прежде чем он считается часто встречаемым. Значение по умолчанию — 00:00:10 (10 секунд). |
||||||
maxRequestEntityAllowed |
Необязательный атрибут uint. Указывает максимальное число байтов, которое может находиться в теле сущности запроса. Если в заголовке Content-Length указано большее число, iis отправляет ответ об ошибке HTTP 403. Значение по умолчанию — 4294967295 (unlimited). |
||||||
uploadReadAheadSize |
Необязательный атрибут uint. Указывает количество байтов, которые веб-сервер считывает в буфер и передает в расширение или модуль ISAPI. Это происходит один раз для каждого запроса клиента. Расширение или модуль ISAPI получает любые дополнительные данные непосредственно от клиента. Значение должно находиться в диапазоне от 0 до 2147483647. Значение по умолчанию — 49152 . |
Дочерние элементы
Отсутствует.
Образец конфигурации
В следующем примере конфигурации атрибуту enable элемента присваивается <serverRuntime>
значение true, а затем настраивается число запросов для URL-адреса, который считается "часто встречаемым", задав атрибуту frequentHitThreshold значение 5 запросов, а атрибуту frequentHitTimePeriod — значение 20 секунд.
<location path="Default Web Site">
<system.webServer>
<serverRuntime enabled="true"
frequentHitThreshold="5"
frequentHitTimePeriod="00:00:20" />
</system.webServer>
</location>
Пример кода
В следующих примерах кода атрибуту enable элемента присваивается <serverRuntime>
значение true, а затем настраивается количество запросов для URL-адреса, который считается "часто встречаемым", задав атрибуту frequentHitThreshold значение 5 запросов, а атрибуту frequentHitTimePeriod — значение 20 секунд.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /enabled:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /frequentHitThreshold:"5" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /frequentHitTimePeriod:"00:00:20" /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 serverRuntimeSection = config.GetSection("system.webServer/serverRuntime", "Default Web Site");
serverRuntimeSection["enabled"] = true;
serverRuntimeSection["frequentHitThreshold"] = 5;
serverRuntimeSection["frequentHitTimePeriod"] = TimeSpan.Parse("00:00:20");
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 serverRuntimeSection As ConfigurationSection = config.GetSection("system.webServer/serverRuntime", "Default Web Site")
serverRuntimeSection("enabled") = True
serverRuntimeSection("frequentHitThreshold") = 5
serverRuntimeSection("frequentHitTimePeriod") = TimeSpan.Parse("00:00:20")
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var serverRuntimeSection = adminManager.GetAdminSection("system.webServer/serverRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site");
serverRuntimeSection.Properties.Item("enabled").Value = true;
serverRuntimeSection.Properties.Item("frequentHitThreshold").Value = 5;
serverRuntimeSection.Properties.Item("frequentHitTimePeriod").Value = "00:00:20";
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set serverRuntimeSection = adminManager.GetAdminSection("system.webServer/serverRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site")
serverRuntimeSection.Properties.Item("enabled").Value = True
serverRuntimeSection.Properties.Item("frequentHitThreshold").Value = 5
serverRuntimeSection.Properties.Item("frequentHitTimePeriod").Value = "00:00:20"
adminManager.CommitChanges()