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


Использование заголовков запросов и ответов BITS

BITS может отправить расположение файла отправки (по ссылке) в серверное приложение или отправить файл отправки в текст запроса (по значению). Чтобы указать, как BITS отправляет файл отправки в серверное приложение, задайте свойство метабазы IIS BITSServerNotificationType. При указании по ссылке BITS передает расположение файла в заголовке BITS-Request-DataFile-Name. Чтобы отправить ответ, создайте и напишите ответ в файл, указанный в заголовке BITS-Response-DataFile-Name.

Серверные приложения, отправляющие один и тот же ответ многим клиентам, должны использовать по ссылке, поэтому на сервере существует только одна копия ответа. Например, в приложении обновления программного обеспечения клиент отправит свою конфигурацию программного обеспечения в серверное приложение. Серверное приложение определяет, какой пакет требуется клиенту и отправляет URL-адрес пакета в BITS. Затем BITS скачивает пакет в качестве ответа.

Серверные приложения, которые создают уникальные ответы для каждого клиента, должны использоваться по значению. Например, серверное приложение, поддерживающее покупку музыкальных файлов, потребуется отправить подписанный музыкальный файл клиенту. Так как подписанный музыкальный файл является уникальным для клиента, серверное приложение не будет хранить его на сервере. По значению также полезно для приложения, которое уже записано для приема данных веб-клиента напрямую.

Дополнительные сведения о заголовках запросов и ответов, используемых между BITS и серверным приложением, см. в разделе "Протокол уведомлений для серверных приложений".

В следующем примере JavaScript показано, как получить доступ к файлам запроса и ответа в серверном приложении, которое используется по ссылке (BITS передает расположение файлов в заголовках).

  var fso = new ActiveXObject ("Scripting.FileSystemObject")
  var requestFileName = Request.ServerVariables ("HTTP_BITS-Request-DataFile-Name")
  var responseFileName = Request.ServerVariables ("HTTP_BITS-Response-DataFile-Name")
  var requestStream
  var responseStream
  var ForReading = 1
  var ForWriting = 2
  var TristateUseDefault = -2

  //Open the upload data file as text stream for reading.
  requestStream = fso.OpenTextFile(requestFileName, ForReading, false, TristateUseDefault);

  //Do something with the uploaded data.

  //Close the upload stream.
  requestStream.Close()

  //Open response data file as text stream for writing.
  responseStream = fso.OpenTextFile(responseFileName, ForWriting, true, TristateUseDefault);

  //Write a response to the response file.

  //Close the response text stream
  responseStream.Close()

Если вы хотите использовать другой файл ответа, отличный от файла, указанного в BITS-Response-DataFile-Name, вызовите метод Response.AddHeader , чтобы добавить URL-адрес BITS-Static-Response-URL, как показано в следующем примере. Если указать другой файл ответа, не создайте файл ответа, указанный в BITS-Response-DataFile-Name.

  Response.AddHeader "BITS-Static-Response-URL" "https://myserver/mypath/myfile"