Freigeben über


Verwenden von BITS-Benachrichtigungsanforderungs-/Antwortheadern

BITS kann den Speicherort der Uploaddatei (als Verweis) an Ihre Serveranwendung senden oder die Uploaddatei im Textkörper der Anforderung (nach Wert) senden. Um anzugeben, wie BITS die Uploaddatei an Ihre Serveranwendung sendet, legen Sie die IIS-Metabasiseigenschaft BITSServerNotificationType fest. Wenn Sie als Verweis angeben, übergibt BITS den Speicherort der Datei im BITS-Request-DataFile-Name-Header. Um eine Antwort zu senden, erstellen und schreiben Sie Ihre Antwort in die Datei, die im BITS-Response-DataFile-Name-Header angegeben ist.

Serveranwendungen, die dieselbe Antwort an viele Clients senden, sollten als Verweis verwendet werden, sodass nur eine Kopie der Antwort auf dem Server vorhanden ist. Beispielsweise lädt der Client in einer Softwareupdateanwendung seine Softwarekonfiguration in die Serveranwendung hoch. Die Serveranwendung bestimmt, welches Paket der Client benötigt, und sendet die URL des Pakets an BITS. Anschließend lädt BITS das Paket als Antwort herunter.

Serveranwendungen, die eindeutige Antworten für jeden Client generieren, sollten nach Wert verwendet werden. Beispielsweise muss eine Serveranwendung, die den Kauf von Musikdateien unterstützt, eine signierte Musikdatei an den Client senden. Da die signierte Musikdatei für den Client eindeutig ist, wird sie von der Serveranwendung nicht auf dem Server gespeichert. By-Wert ist auch nützlich für eine Anwendung, die bereits geschrieben wurde, um Webclientdaten direkt zu akzeptieren.

Ausführliche Informationen zu den Anforderungs- und Antwortheadern, die zwischen BITS und Ihrer Serveranwendung verwendet werden, finden Sie unter Benachrichtigungsprotokoll für Serveranwendungen.

Das folgende JavaScript-Beispiel zeigt, wie Sie auf die Anforderungs- und Antwortdateien in einer Serveranwendung zugreifen, die per Verweisbenachrichtigung verwendet (BITS übergibt den Speicherort der Dateien in den Headern).

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

Wenn Sie eine andere Antwortdatei als die in BITS-Response-DataFile-Name angegebene verwenden möchten, rufen Sie die Response.AddHeader-Methode auf, um die BITS-Static-Response-URL hinzuzufügen, wie im folgenden Beispiel gezeigt. Wenn Sie eine andere Antwortdatei angeben, erstellen Sie nicht die in BITS-Response-DataFile-Name angegebene Antwortdatei.

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