Свойства расширения IIS BITS

Фоновая интеллектуальная служба передачи (BITS) использует ISAPI для расширения СЛУЖБ IIS для поддержки заданий отправки. В следующей таблице перечислены свойства, которые BITS добавляет в метабазу IIS для компонента виртуального каталога. BITS использует эти свойства для определения способа отправки файлов. Свойства расширения СЛУЖБ IIS наследуются, за исключением BITSUploadEnabled.

Свойство Description
Тип данных BITSUploadEnabled: логическое значение
Указывает, включены ли отправки BITS в виртуальном каталоге. Если параметр отсутствует или имеет значение 0, отправка BITS отключается.
Это свойство доступно только для чтения. Чтобы задать это свойство, вызовите метод EnableBITSUploads или DisableBITSUploads интерфейса IBITSExtensionSetup.
Тип данных BITSEssionTimeout: DWORD
Количество секунд, в течение которых подключение сохраняется, если ход отправки файла не выполняется; Таймер сбрасывается при достижении хода выполнения. BITS закрывает подключение, если достигнуто время ожидания и очищает данные, связанные с сеансом.
Установка короткого времени ожидания сеанса может быть проблемой для заданий отправки ответа, так как ответ загружается только при входе и подключении пользователя к сети. Время ожидания сеанса может истекать до скачивания ответа, в этом случае сеанс отменяется и файл ответа удаляется.
Обратите внимание, что BITS отменяет задание, если достигнуто значение групповой политики JobInactivityTimeout (по умолчанию — 90 дней), независимо от этого параметра.
Значение по умолчанию — 1 209 600 (14 дней).
Тип данных BITSMaximumUploadSize: String
Максимальное количество байтов, которые можно отправить на задание. Укажите максимальное число байтов в виде десятичной строки; строковое значение должно быть меньше или равно "1844674407370955". Пустая строка совпадает с указанием "1844674407370955".
Значение по умолчанию — пустая строка.
Примечание. В IIS 7 ограничение отправки по умолчанию составляет 30 миллионов байт. Значение свойства BITSMaximumUploadSize не может превышать ограничение IIS. Дополнительные сведения и сведения об изменении по умолчанию СЛУЖБ IIS см. в КБ942074.
Тип данных BITSServerNotificationType: DWORD
Указывает, как отправить файл отправки в серверное приложение. Возможные значения: 0, 1 и 2.
Значение 0 означает, что файл не отправляется в серверное приложение. BITS помещает файл отправки в каталог, указанный в удаленном имени (удаленное имя, указанное при добавлении файла в задание), не уведомляя серверное приложение. Если файл в настоящее время существует в целевом каталоге, он заменяется на файл отправки.
Значение 1 означает, что BITS передает расположение файла отправки в серверное приложение, указанное в свойстве BITSServerNotificationURL . Серверное приложение обрабатывает файл и создает файл ответа при необходимости. По умолчанию BITS удаляет файлы отправки и ответа с сервера после получения ответа от серверного приложения. Чтобы bitS скопировать файл отправки в расположение, указанное удаленным именем файла в задании, добавьте в ответ заголовок BITS-Copy-File-To-Destination . Если вы не включаете заголовок и хотите сохранить файлы отправки и ответа, перед ответом необходимо скопировать файлы отправки и ответа в новое расположение.
Значение 2 означает, что BITS передает файл отправки в тексте запроса приложению сервера, указанному в свойстве BITSServerNotificationURL . Серверное приложение обрабатывает файл и передает ответ в тексте ответа при необходимости.
Дополнительные сведения о заголовках запросов и ответов см. в разделе "Протокол уведомлений для серверных приложений".
Серверное приложение должно предоставить ответ в течение пяти минут. Если серверное приложение не отвечает в течение пяти минут, задание вводит временное состояние ошибки. По истечении срока действия задержки повторных попыток сервер BITS отправит еще одно уведомление в серверное приложение (серверное приложение должно быть записано для обработки повторяющихся уведомлений).BITS 1.5: время ожидания уведомления составляет 30 секунд.

Значение по умолчанию равно 0.
Тип данных BITSServerNotificationURL: String
Необязательно. Содержит URL-адрес серверного приложения, в которое BITS отправляет файл отправки. Необходимо указать URL-адрес, если значение свойства BITSServerNotificationType равно 1 или 2. URL-адрес ограничен 2200 символами, не включая конечный элемент NULL. URL-адрес должен быть URL-адресом HTTP; BITS не поддерживает URL-адреса уведомлений HTTPS.
Если URL-адрес недоступен во время отправки, BITS повторит отправку до тех пор, пока URL-адрес уведомления не будет создан или не истекает период повтора.
Обратите внимание, что если удаленное имя, указанное в задании, содержит строку запроса, строка запроса добавляется к указанному URL-адресу. Например, если удаленное имя содержится https://myserver/myvdir/subdir/file.asp?ACCOUNT=86433 и укажите параметр BITSServerNotificationURL в качестве https://otherserver/myvdir2/bag.aspURL-адреса, на который указаны записи BITS. https://otherserver/myvdir2/bag.asp?ACCOUNT=86433.
Если исходный URL-адрес и https://myserver/myvdir/file.txt URL-адрес уведомления myasp.asp, BITS использует http/myserver/myvdir/myasp.asp в качестве URL-адреса уведомления.
Если путь и часть имени файла URL-адреса содержит символы Юникода, не общие для кодовой страницы на клиенте и сервере, преобразование URL-адресов завершится ошибкой на сервере, а задание BITS будет помещено в состояние ошибки. Если часть сервера URL-адреса содержит символы Юникода, необходимо закодировать часть сервера с помощью международных доменных имен (IDN).
Тип данных BITSHostId: String
Задайте это свойство, если установка сервера является веб-фермой, которая не использует общее хранилище.
Укажите имя сервера или IP-адрес сервера для повторного подключения после прерывания процесса отправки. Как правило, вы указываете имя настраиваемого сервера. URL-адрес ограничен 300 символами, не включая конечный элемент NULL.
Если это свойство не указано, и процесс отправки прерывается, возможно, BITS возобновляет задание на другом сервере в ферме. Однако предыдущий сервер по-прежнему содержит файл частичной отправки до прерывания. BITS удаляет частичный файл после истечения срока действия BITSessionTimeout .
Примечание. Не используйте свойство BITSHostId , если SSL используется в веб-ферме, использующую балансировку сетевой нагрузки (NLB) или DNS-имена с несколькими IP-адресами, если только имя кластера и отдельные имена серверов не указаны в сертификате. (Если имя сервера, указанное в BITSHostId не соответствует общему имени сертификата, задание завершится ошибкой.) Вместо этого для NLB задайте для параметра Affinity значение Single, чтобы убедиться, что клиент взаимодействует с тем же сервером в будущем.
Тип данных BITSHostIdFallbackTimeout: DWORD
Количество секунд, в течение которых клиент BITS пытается повторно подключиться к имени сервера BITSHostId перед отменить изменения именем узла, указанным в удаленном имени файла задания. Таймер начинается, когда BITS не может подключиться к серверу BITSHostId . Таймер сбрасывается, когда клиент успешно подключается к серверу.
Обратите внимание, что значение времени ожидания выполнения задания (см. раздел IBackgroundCopyJob::SetNoProgressTimeout) должно превышать это значение времени ожидания. Если нет, задание завершится сбоем до истечения резервного времени ожидания.
Задайте это свойство только в том случае, если задано свойство BITSHostId .
Значение по умолчанию — 86 400 (1 день).
Тип данных BITSAllowOverwrites: Целое число
Указывает, может ли отправить файл перезаписать существующий файл с тем же именем. Файл отправки перезаписывает существующий файл, если BITSAllowOverwrites равно 1.
Значение по умолчанию равно 0.
IIS 6.0. Это свойство можно задать только из скрипта, его нельзя задать с помощью страницы свойств расширения BITS в пользовательском интерфейсе IIS.

Тип данных BITSCleanupUseDefault: boolean
Указывает, использует ли задача очистки расписания по умолчанию. По умолчанию задача очистки выполняется каждые 12 часов.
Установите значение 1, чтобы использовать расписание по умолчанию; в противном случае — значение 0, чтобы указать расписание.
Чтобы указать расписание, используйте свойства BITSCleanupCount и BITSCleanupUnits .
Задача очистки очищает виртуальный каталог, удаляя задания, которые не были изменены в течение периода ожидания сеанса (см . раздел BITSSessionTimeout).
По умолчанию используется расписание по умолчанию 1.
IIS 6.0: не поддерживается.
Тип данных BITSCleanupCount: Целое число
Указывает интервал ожидания между выполнением задачи очистки. Интервал, который можно указать, зависит от единиц. Возможные значения интервалов см. в свойстве BITSCleanupUnits .
Это свойство игнорируется, если значение BITSCleanupUseDefault равно 0.
IIS 6.0: не поддерживается.

Тип данных BITSCleanupUnits: целое число
Задает единицы для интервала очистки, указанного в свойстве BITSCleanupCount . Это свойство игнорируется, если значение BITSCleanupUseDefault равно 0.
Возможны следующие значения:
0. Единицы — минуты. Возможные значения — от 1 до 60.
1. Единицы — часы. Это значение по умолчанию. Возможные значения — от 1 до 24.
2. Единицы — дни. Возможные значения — от 1 до 360.

IIS 6.0: не поддерживается.

Тип данных BITSNumberOfSessionsLimit: Целое число
Ограничивает количество сеансов отправки, которые могут существовать одновременно для пользователя. Если число сеансов для пользователя превышает это ограничение, то при выполнении задачи очистки он удаляет последние сеансы до тех пор, пока число сеансов для пользователя не будет ниже предела.
Значение по умолчанию — 50 сеансов.
IIS 6.0: не поддерживается.

Тип данных BITSSessionLimitEnable: Boolean
Указывает, ограничивает ли BITS количество сеансов отправки на пользователя. Если параметр отсутствует или равен 0, ограничение отключено.
Чтобы указать ограничение, задайте свойство BITSNumberOfSessionsLimit .
Значение по умолчанию — 1.
IIS 6.0: не поддерживается.

В следующем примере показано, как задать свойства расширения СЛУЖБ IIS с помощью узла скриптов Windows. Если виртуальный каталог указывает на удаленную общую папку, задайте свойства UNCUserName и UNCPassword IIS.

if (WScript.Arguments.length < 2)
{
    WScript.Echo("Usage: bitsvdir virtual_directory local_directory");
    WScript.Quit(1);
}

VirtualDirectoryName = WScript.Arguments(0);
LocalDirectoryName = WScript.Arguments(1);

ServerObj = GetObject("IIS://LocalHost/W3SVC/1/ROOT");
VirtualDir = ServerObj.Create("IIsWebVirtualDir", VirtualDirectoryName );

VirtualDir.Path = LocalDirectoryName;
VirtualDir.AppIsolated = 0;
VirtualDir.AccessScript = true;
VirtualDir.AccessRead = false;
VirtualDir.AccessWrite = false;
VirtualDir.SetInfo();

// Set BITS specific IIS configuration settings
VirtualDir.EnableBITSUploads();
VirtualDir.BITSMaximumUploadSize = "4294967296";
VirtualDir.SetInfo();

WScript.Echo( "Created virtual directory " + VirtualDirectoryName + 
              " with a local directory of " + LocalDirectoryName );
WScript.Quit( 0 );