Поделиться через


Протокол уведомлений для серверных приложений

BITS использует свойство BITSServerNotificationType , чтобы определить, как BITS отправляет содержимое файла отправки в серверное приложение. Если для свойства BITSServerNotificationType задано значение 1, BITS передает расположение файла отправки в заголовке. Если для свойства BITSServerNotificationType задано значение 2, BITS передает содержимое файла отправки в тексте запроса.

Дополнительные сведения о том, как BITS обрабатывает ошибки из серверного приложения, см. в разделе "Обработка ошибок серверного приложения".

Отправка расположения файла отправки в заголовке

BITS передает расположение файлов отправки и ответа в серверное приложение в заголовках, если для свойства BITSServerNotificationType задано значение 1. Серверное приложение открывает файл отправки, обрабатывает данные, а затем создает файл ответа. По умолчанию BITS удаляет файлы отправки и ответа с сервера после получения ответа от серверного приложения. Чтобы bitS скопировать файл отправки в расположение, указанное удаленным именем файла в задании, добавьте в ответ заголовок BITS-Copy-File-To-Destination. Если вы не включаете заголовок и хотите сохранить файлы отправки и ответа, перед ответом необходимо скопировать файлы отправки и ответа в новое расположение. В следующей таблице показаны заголовки запросов.

Заголовок запроса Description
BITS-Original-Request-URL Содержит удаленное имя, указанное в задании.
BITS-Request-DataFile-Name Содержит полный путь к отправленным данным.
BITS-Response-DataFile-Name Содержит полный путь к тому, где BITS ожидает, что серверное приложение записывает ответ.

В следующей таблице показаны заголовки ответов.

Заголовок ответа Description
BITS-Static-Response-URL Необязательно. Содержит абсолютный URL-адрес (не указывайте относительный URL-адрес) в статический файл данных, используемый в качестве ответа. Статический файл данных должен быть доступен клиентом BITS. Если вы используете этот заголовок, не создайте файл ответа, указанный в заголовке запроса BITS-Response-DataFile-Name. Обратите внимание, что BITS не удаляет этот файл.
BITS-Copy-File-To-Destination Необязательно. По умолчанию, если для свойства BITSServerNotificationType задано значение 1 или 2, сервер BITS не копирует файл отправки в расположение, указанное именем удаленного файла в задании. Чтобы bitS скопировать файл в расположение, указанное удаленным именем файла в задании, отправьте этот заголовок ответа. Можно указать любое значение; BITS не использует значение. Обратите внимание, что папки в пути к удаленному файлу должны существовать.

В следующем запросе показано, как BITS отправляет расположение файла отправки в серверное приложение.

POST https://myserver/myvdir/handle_upload.asp?ACCOUNT=873112 HTTP/1.1
Host: myserver
BITS-Original-Request-URL: https://front-end-server/vdir
BITS-Request-DataFile-Name: c:\physical-path\BITS-Sessions\{5e53c221-f2d6-4bf2-
b994-1dc43ceaca8d}\request
BITS-Response-DataFile-Name: c:\physical-path\BITS-Sessions\{5e53c221-f2d6-4bf2-
b994-1dc43ceaca8d}\response
Content-Length: 0

Ниже показан ответ серверного приложения на BITS; ответ помещается в файл, указанный заголовком запроса BITS-Response-DataFile-Name.

HTTP/1.1 200 - OK
Content-Length: 0

Отправка файла отправки в тексте запроса

BITS отправляет файл отправки в тексте запроса, если для свойства BITSServerNotificationType задано значение 2. Отправка файла отправки в тексте запроса позволяет существующим скриптам и приложениям работать с минимальными изменениями. Файл отправки и файл ответа передаются в запросе и ответе соответственно. В следующей таблице показан заголовок запроса.

Заголовок запроса Description
BITS-Original-Request-URL Содержит удаленное имя, указанное в задании.

В следующей таблице показаны заголовки ответов.

Заголовок ответа Description
BITS-Static-Response-URL Необязательно. Содержит абсолютный URL-адрес (не указывайте относительный URL-адрес) в статический файл данных, используемый в качестве ответа. Статический файл данных должен быть доступен клиентом BITS. Если вы используете этот заголовок, не включайте ответ в поток. Обратите внимание, что BITS не удаляет этот файл.
BITS-Copy-File-To-Destination Необязательно. Если для свойства BITSServerNotificationType задано значение 1 или 2, сервер BITS не копирует файл отправки в расположение, указанное именем удаленного файла в задании. Чтобы служба BITS скопировали файл в расположение, указанное именем удаленного файла, отправьте этот заголовок ответа. Можно указать любое значение; BITS не использует значение. Обратите внимание, что папки в пути к удаленному файлу должны существовать.

В следующем запросе показано, как BITS передает отправленный файл в серверное приложение в тексте запроса.

POST https://myserver/myvdir/handle_upload.asp?ACCOUNT=873112 HTTP/1.1
Host: myserver
BITS-Original-Request-URL: https://front-end-server/vdir
Content-Length: 80000

80000 bytes of upload data goes here

В следующем ответе показан серверное приложение, передавающее данные ответа в BITS в тексте ответа.

HTTP/1.1 200 - OK
Content-Length: 100

100 bytes of reply data goes here

Обработка ошибок приложения сервера

См. сведения об обработке ошибок приложения сервера.