Propriétés des extensions IIS BITS

Le service BITS (Background Intelligent Transfer Service) utilise une ISAPI pour étendre IIS afin de prendre en charge les travaux de chargement. Le tableau suivant répertorie les propriétés que BITS ajoute à la métabase IIS pour le composant de répertoire virtuel. BITS utilise ces propriétés pour déterminer comment charger les fichiers. Les propriétés de l’extension IIS BITS peuvent être héritées, à l’exception de BITSUploadEnabled.

Propriété Description
BITSUploadEnabledType de données : Boolean
Indique si les chargements BITS sont activés sur le répertoire virtuel. Si le paramètre n’est pas présent ou a la valeur 0, les chargements BITS sont désactivés.
Il s’agit d’une propriété en lecture seule. Pour définir cette propriété, appelez la méthode EnableBITSUploads ou DisableBITSUploads de l’interface IBITSExtensionSetup .
BITSSessionTimeoutType de données : DWORD
Nombre de secondes pendant lesquelles la connexion est maintenue si aucune progression n’est effectuée lors du chargement du fichier ; le minuteur est réinitialisé lorsque la progression est effectuée. BITS ferme la connexion si le délai d’attente est atteint et nettoie les données associées à la session.
La définition d’un court délai d’attente de session peut être un problème pour les travaux de chargement-réponse, car la réponse n’est téléchargée que lorsque l’utilisateur est connecté au réseau. Il est possible que la session expire avant le téléchargement de la réponse, auquel cas la session est annulée et le fichier de réponse est supprimé.
Notez que BITS annule le travail si la valeur de stratégie de groupe JobInactivityTimeout (par défaut est de 90 jours) est atteinte, quel que soit ce paramètre.
La valeur par défaut est 1 209 600 (14 jours).
BITSMaximumUploadSizeType de données : Chaîne
Nombre maximal d’octets pouvant être chargés par travail. Spécifiez le nombre maximal d’octets sous forme de chaîne décimale ; La valeur de chaîne doit être inférieure ou égale à « 1844674407370955 ». Une chaîne vide revient à spécifier « 1844674407370955 ».
La valeur par défaut est une chaîne vide.
Note: Dans IIS 7, la limite de chargement par défaut est de 30 millions d’octets. La valeur de la propriété BITSMaximumUploadSize ne peut pas dépasser la limite IIS. Pour plus d’informations sur la modification de la valeur par défaut d’IIS, consultez KB942074.
BITSServerNotificationTypeType de données : DWORD
Spécifie comment envoyer le fichier de chargement à l’application serveur. Les valeurs possibles sont : 0, 1 et 2.
La valeur 0 signifie que le fichier n’est pas envoyé à l’application serveur. BITS place le fichier de chargement dans le répertoire spécifié dans le nom distant (nom distant spécifié lorsque vous avez ajouté le fichier au travail) sans en informer l’application serveur. Si le fichier existe actuellement dans le répertoire de destination, il est remplacé par le fichier de chargement.
La valeur 1 signifie que BITS transmet l’emplacement du fichier de chargement à l’application serveur spécifiée dans la propriété BITSServerNotificationURL . L’application serveur traite le fichier et génère un fichier de réponse, si nécessaire. Par défaut, BITS supprime les fichiers de chargement et de réponse du serveur après avoir reçu la réponse de l’application serveur. Pour que BITS copie le fichier de chargement à l’emplacement spécifié par le nom de fichier distant dans le travail, incluez l’en-tête BITS-Copy-File-To-Destination dans votre réponse. Si vous n’incluez pas l’en-tête et que vous souhaitez enregistrer les fichiers de chargement et de réponse, vous devez copier les fichiers de chargement et de réponse dans un nouvel emplacement avant de répondre.
La valeur 2 signifie que BITS transmet le fichier de chargement dans le corps de la demande à l’application serveur spécifiée dans la propriété BITSServerNotificationURL . L’application serveur traite le fichier et transmet la réponse dans le corps de la réponse, si nécessaire.
Pour plus d’informations sur les en-têtes de demande et de réponse, consultez Protocole de notification pour les applications serveur.
L’application serveur doit fournir une réponse dans les cinq minutes. Si l’application serveur ne répond pas dans les cinq minutes, le travail passe à l’état d’erreur temporaire. Lorsque le délai de nouvelle tentative expire, le serveur BITS envoie une autre notification à l’application serveur (l’application serveur doit être écrite pour gérer les notifications en double). BITS 1.5 : Le délai d’expiration de la notification est de 30 secondes.

La valeur par défaut est 0.
BITSServerNotificationURLType de données : Chaîne
facultatif. Contient l’URL de l’application serveur dans laquelle BITS publie le fichier de chargement. Vous devez spécifier une URL si la valeur de la propriété BITSServerNotificationType est 1 ou 2. L’URL est limitée à 2 200 caractères, à l’exception de la marque de fin Null. L’URL doit être une URL HTTP ; BITS ne prend pas en charge les URL de notification HTTPS.
Si l’URL n’est pas disponible au moment du chargement, BITS effectue une nouvelle tentative de chargement jusqu’à ce que l’URL de notification existe ou jusqu’à l’expiration de la période de nouvelle tentative.
Notez que si le nom distant spécifié dans le travail contient une chaîne de requête, la chaîne de requête est ajoutée à l’URL que vous spécifiez. Par exemple, si le nom distant contient https://myserver/myvdir/subdir/file.asp?ACCOUNT=86433 et que vous spécifiez le paramètre BITSServerNotificationURL comme https://otherserver/myvdir2/bag.asp, l’URL vers laquelle les publications BITS est https://otherserver/myvdir2/bag.asp?ACCOUNT=86433.
Si l’URL d’origine est https://myserver/myvdir/file.txt et que l’URL de notification est myasp.asp, BITS utilise http//myserver/myvdir/myasp.asp comme URL de notification.
Si la partie chemin d’accès et nom de fichier de l’URL contient des caractères Unicode qui ne sont pas communs à la page de codes sur le client et le serveur, la traduction d’URL échoue sur le serveur et le travail BITS est placé dans l’état d’erreur. Si la partie serveur de l’URL contient des caractères Unicode, vous devez encoder la partie serveur à l’aide de noms de domaine internationalisés (IDN).
BITSHostIdType de données : Chaîne
Définissez cette propriété si l’installation du serveur est une batterie de serveurs web qui n’utilise pas de stockage partagé.
Spécifiez le nom du serveur ou l’adresse IP du serveur auquel se reconnecter après l’interruption du processus de chargement. En règle générale, vous spécifiez le nom du serveur que vous configurez. L’URL est limitée à 300 caractères, à l’exception de la marque de fin Null.
Si vous ne spécifiez pas cette propriété et que le processus de chargement est interrompu, il est possible que BITS reprenne le travail sur un autre serveur de la batterie de serveurs. Toutefois, le serveur précédent contient toujours le fichier de chargement partiel avant l’interruption. BITS supprime le fichier partiel après l’expiration de BITSSessionTimeout .
Note: N’utilisez pas la propriété BITSHostId si SSL est utilisé dans une batterie de serveurs web qui utilise l’équilibrage de la charge réseau (NLB) ou des noms DNS avec plusieurs adresses IP, sauf si vous incluez le nom du cluster et les noms de serveurs individuels dans le certificat. (Si le nom de serveur spécifié dans BITSHostId ne correspond pas au nom commun sur le certificat, le travail échoue.) Au lieu de cela, pour L’équilibrage de la charge réseau, définissez le paramètre Affinity sur Single pour vous assurer que le client communique avec le même serveur à l’avenir.
BITSHostIdFallbackTimeoutType de données : DWORD
Nombre de secondes pendant lesquelles le client BITS tente de se reconnecter au nom du serveur BITSHostId avant de revenir au nom d’hôte spécifié dans le nom de fichier distant du travail. Le minuteur commence lorsque BITS ne peut pas se connecter au serveur BITSHostId . Le minuteur est réinitialisé lorsque le client se connecte correctement au serveur.
Notez que la valeur aucun délai d’attente de progression du travail (voir IBackgroundCopyJob::SetNoProgressTimeout) doit être plus longue que cette valeur de délai d’expiration. Si ce n’est pas le cas, le travail échoue avant l’expiration de la valeur du délai d’expiration de secours.
Définissez cette propriété uniquement si vous définissez la propriété BITSHostId .
La valeur par défaut est 86 400 (1 jour).
BITSAllowOverwritesType de données : Integer
Indique si un fichier de chargement peut remplacer un fichier existant portant le même nom. Le fichier de chargement remplace le fichier existant si BITSAllowOverwrites a la valeur 1.
La valeur par défaut est 0.
IIS 6.0 : Vous pouvez définir cette propriété uniquement à partir d’un script. Vous ne pouvez pas la définir à l’aide de la page de propriétés de l’extension BITS dans l’interface utilisateur IIS.

BITSCleanupUseDefaultType de données : Boolean
Indique si la tâche de nettoyage utilise les planifications par défaut. Par défaut, la tâche de nettoyage est exécutée toutes les 12 heures.
Définissez sur 1 pour utiliser la planification par défaut ; sinon, 0 pour spécifier une planification.
Pour spécifier une planification, utilisez les propriétés BITSCleanupCount et BITSCleanupUnits .
La tâche de nettoyage nettoie le répertoire virtuel en supprimant les travaux qui n’ont pas été modifiés dans le délai d’attente de session (voir BITSSessionTimeout).
La valeur par défaut est 1 utiliser la planification par défaut.
IIS 6.0 : Non pris en charge.
BITSCleanupCountType de données : Integer
Spécifie l’intervalle d’attente entre l’exécution de la tâche de nettoyage. L’intervalle que vous pouvez spécifier dépend des unités. Pour connaître les valeurs d’intervalle possibles, consultez la propriété BITSCleanupUnits .
Cette propriété est ignorée si BITSCleanupUseDefault a la valeur 0.
IIS 6.0 : Non pris en charge.

BITSCleanupUnitsType de données : Integer
Spécifie les unités pour l’intervalle de nettoyage spécifié dans la propriété BITSCleanupCount . Cette propriété est ignorée si BITSCleanupUseDefault a la valeur 0.
Les valeurs possibles sont les suivantes :
0 : Les unités sont en minutes. Les valeurs possibles sont de 1 à 60.
1 : Les unités sont des heures. Il s’agit de la valeur par défaut. Les valeurs possibles sont de 1 à 24.
2 : Les unités sont des jours. Les valeurs possibles sont comprises entre 1 et 360.

IIS 6.0 : Non pris en charge.

BITSNumberOfSessionsLimitType de données : Integer
Limite le nombre de sessions de chargement qui peuvent exister simultanément pour un utilisateur. Si le nombre de sessions d’un utilisateur est supérieur à cette limite, lorsque la tâche de nettoyage s’exécute, elle supprime les sessions les plus récentes jusqu’à ce que le nombre de sessions de l’utilisateur soit inférieur à la limite.
La valeur par défaut est de 50 sessions.
IIS 6.0 : Non pris en charge.

BITSSessionLimitEnableType de données : booléen
Indique si BITS limite le nombre de sessions de chargement par utilisateur. Si le paramètre n’est pas présent ou est égal à 0, la limite est désactivée.
Pour spécifier la limite, définissez la propriété BITSNumberOfSessionsLimit .
La valeur par défaut est 1.
IIS 6.0 : Non pris en charge.

L’exemple suivant montre comment définir les propriétés de l’extension IIS BITS à l’aide de l’hôte de script Windows. Si le répertoire virtuel pointe vers un partage distant, définissez également les propriétés IIS UNCUserName et UNCPassword .

if (WScript.Arguments.length < 2)
{
    WScript.Echo("Usage: bitsvdir virtual_directory local_directory");
    WScript.Quit(1);
}

VirtualDirectoryName = WScript.Arguments(0);
LocalDirectoryName = WScript.Arguments(1);

ServerObj = GetObject("IIS://LocalHost/W3SVC/1/ROOT");
VirtualDir = ServerObj.Create("IIsWebVirtualDir", VirtualDirectoryName );

VirtualDir.Path = LocalDirectoryName;
VirtualDir.AppIsolated = 0;
VirtualDir.AccessScript = true;
VirtualDir.AccessRead = false;
VirtualDir.AccessWrite = false;
VirtualDir.SetInfo();

// Set BITS specific IIS configuration settings
VirtualDir.EnableBITSUploads();
VirtualDir.BITSMaximumUploadSize = "4294967296";
VirtualDir.SetInfo();

WScript.Echo( "Created virtual directory " + VirtualDirectoryName + 
              " with a local directory of " + LocalDirectoryName );
WScript.Quit( 0 );