Share via


Uso delle intestazioni di richiesta/risposta di notifica BITS

BITS può inviare il percorso del file di caricamento (per riferimento) all'applicazione server oppure può inviare il file di caricamento nel corpo della richiesta (per valore). Per specificare il modo in cui BITS invia il file di caricamento all'applicazione server, impostare la proprietà della metabase IIS BITSServerNotificationType. Se si specifica per riferimento, BITS passa il percorso del file nell'intestazione BITS-Request-DataFile-Name. Per inviare una risposta, creare e scrivere la risposta al file specificato nell'intestazione BITS-Response-DataFile-Name.

Le applicazioni server che inviano la stessa risposta a molti client devono usare per riferimento, quindi è presente una sola copia della risposta nel server. Ad esempio, in un'applicazione di aggiornamento software, il client caricherà la configurazione software nell'applicazione server. L'applicazione server determina il pacchetto necessario per il client e invia l'URL del pacchetto a BITS. BITS scarica quindi il pacchetto come risposta.

Le applicazioni server che generano risposte univoce per ogni client devono usare per valore. Ad esempio, un'applicazione server che supporta l'acquisto di file musicali dovrà inviare un file musicale firmato al client. Poiché il file musicale firmato è univoco per il client, l'applicazione server non lo archivierebbe nel server. Per valore è utile anche per un'applicazione già scritta per accettare direttamente i dati client Web.

Per informazioni dettagliate sulle intestazioni di richiesta e risposta usate tra BITS e l'applicazione server, vedere Notification Protocol for Server Applications.

L'esempio JavaScript seguente illustra come accedere ai file di richiesta e risposta in un'applicazione server che usa tramite notifica di riferimento (BITS passa il percorso dei file nelle intestazioni).

  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 si vuole usare un file di risposta diverso da quello specificato in BITS-Response-DataFile-Name, chiamare il metodo Response.AddHeader per aggiungere BITS-Static-Response-URL, come illustrato nell'esempio seguente. Se si specifica un file di risposta diverso, non creare il file di risposta specificato in BITS-Response-DataFile-Name.

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