Partilhar via


Usando cabeçalhos de solicitação/resposta de notificação do BITS

O BITS pode enviar a localização do ficheiro de carregamento (por referência) para a sua aplicação de servidor ou pode enviar o ficheiro de carregamento no corpo do pedido (por valor). Para especificar como o BITS envia o arquivo de carregamento para seu aplicativo de servidor, defina a propriedade da metabase do IIS BITSServerNotificationType. Se você especificar por referência, o BITS passará o local do arquivo no cabeçalho BITS-Request-DataFile-Name. Para enviar uma resposta, crie e escreva a sua resposta no ficheiro especificado no cabeçalho BITS-Response-DataFile-Name.

Os aplicativos de servidor que enviam a mesma resposta para muitos clientes devem usar por referência, portanto, há apenas uma cópia da resposta no servidor. Por exemplo, em um aplicativo de atualização de software, o cliente carregaria sua configuração de software para o aplicativo de servidor. O aplicativo de servidor determina qual pacote o cliente precisa e envia a URL do pacote para o BITS. Em seguida, o BITS baixa o pacote como resposta.

Os aplicativos de servidor que geram respostas exclusivas para cada cliente devem usar por valor. Por exemplo, um aplicativo de servidor que suporta a compra de arquivos de música precisaria enviar um arquivo de música assinado para o cliente. Como o arquivo de música assinado é exclusivo para o cliente, o aplicativo de servidor não o armazenaria no servidor. Por valor também é útil para um aplicativo que já está escrito para aceitar dados do cliente da Web diretamente.

Para obter detalhes sobre os cabeçalhos de solicitação e resposta usados entre o BITS e seu aplicativo de servidor, consulte Notification Protocol for Server Applications.

O exemplo JavaScript a seguir mostra como acessar os arquivos de solicitação e resposta em um aplicativo de servidor que usa por notificação de referência (o BITS passa o local dos arquivos nos cabeçalhos).

  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()

Se quiseres usar um ficheiro de resposta diferente do especificado em BITS-Response-DataFile-Name, chama o método Response.AddHeader para adicionar oResponse-URL BITS-Static- conforme mostrado no exemplo a seguir. Se você especificar um arquivo de resposta diferente, não crie o arquivo de resposta especificado em BITS-Response-DataFile-Name.

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