Utilisation des en-têtes de demande/réponse de notification BITS
BITS peut envoyer l’emplacement du fichier de chargement (par référence) à votre application serveur ou envoyer le fichier de chargement dans le corps de la requête (par valeur). Pour spécifier la façon dont BITS envoie le fichier de chargement à votre application serveur, définissez la propriété de métabase IIS BITSServerNotificationType. Si vous spécifiez par référence, BITS transmet l’emplacement du fichier dans l’en-tête BITS-Request-DataFile-Name. Pour envoyer une réponse, créez et écrivez votre réponse dans le fichier spécifié dans l’en-tête BITS-Response-DataFile-Name.
Les applications serveur qui envoient la même réponse à de nombreux clients doivent utiliser par référence, de sorte qu’il n’y a qu’une seule copie de la réponse sur le serveur. Par exemple, dans une application de mise à jour logicielle, le client charge sa configuration logicielle sur l’application serveur. L’application serveur détermine le package dont le client a besoin et envoie l’URL du package à BITS. Ensuite, BITS télécharge le package en tant que réponse.
Les applications serveur qui génèrent des réponses uniques pour chaque client doivent utiliser par valeur. Par exemple, une application serveur qui prend en charge l’achat de fichiers de musique doit envoyer un fichier de musique signé au client. Étant donné que le fichier de musique signé est propre au client, l’application serveur ne le stocke pas sur le serveur. Par valeur est également utile pour une application qui est déjà écrite pour accepter directement les données du client web.
Pour plus d’informations sur les en-têtes de requête et de réponse utilisés entre BITS et votre application serveur, consultez Protocole de notification pour les applications serveur.
L’exemple JavaScript suivant montre comment accéder aux fichiers de requête et de réponse dans une application serveur qui utilise par notification de référence (BITS transmet l’emplacement des fichiers dans les en-têtes).
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()
Si vous souhaitez utiliser un fichier de réponse différent de celui spécifié dans BITS-Response-DataFile-Name, appelez la méthode Response.AddHeader pour ajouter l’URL BITS-Static-Response-URL comme indiqué dans l’exemple suivant. Si vous spécifiez un autre fichier de réponse, ne créez pas le fichier de réponse spécifié dans BITS-Response-DataFile-Name.
Response.AddHeader "BITS-Static-Response-URL" "https://myserver/mypath/myfile"