Propiedades de extensión IIS de BITS

El Servicio de transferencia inteligente en segundo plano (BITS) usa una ISAPI para ampliar IIS para admitir trabajos de carga. En la tabla siguiente se enumeran las propiedades que BITS agrega a la metabase de IIS para el componente de directorio virtual. BITS usa estas propiedades para determinar cómo cargar los archivos. Las propiedades de extensión DE IIS de BITS se pueden heredar, excepto BITSUploadEnabled.

Propiedad Descripción
BITSUploadEnabledTipo de datos: booleano
Indica si las cargas de BITS están habilitadas en el directorio virtual. Si la configuración no está presente o es 0, las cargas de BITS se deshabilitan.
Se trata de una propiedad de solo lectura. Para establecer esta propiedad, llame al método EnableBITSUploads o DisableBITSUploads de la interfaz IBITSExtensionSetup .
BITSSessionTimeoutTipo de datos: DWORD
Número de segundos que se mantiene la conexión si no se realiza ningún progreso al cargar el archivo; el temporizador se restablece cuando se realiza el progreso. BITS cierra la conexión si se alcanza el tiempo de espera y limpia los datos asociados a la sesión.
Establecer un breve tiempo de espera de sesión puede ser un problema para los trabajos de carga y respuesta porque la respuesta solo se descarga cuando el usuario ha iniciado sesión y está conectado a la red. Es posible que la sesión agote el tiempo de espera antes de que se descargue la respuesta, en cuyo caso se cancela la sesión y se elimina el archivo de respuesta.
Tenga en cuenta que BITS cancela el trabajo si se alcanza el valor de directiva de grupo JobInactivityTimeout (el valor predeterminado es 90 días), independientemente de esta configuración.
El valor predeterminado es 1.209.600 (14 días).
BITSMaximumUploadSizeTipo de datos: String
Número máximo de bytes que se pueden cargar por trabajo. Especifique el número máximo de bytes como una cadena decimal; el valor de cadena debe ser menor o igual que "1844674407370955". Una cadena vacía es la misma que especificar "1844674407370955".
El valor predeterminado es una cadena vacía.
Nota: En IIS 7, el límite de carga predeterminado es de 30 millones de bytes. El valor de la propiedad BITSMaximumUploadSize no puede superar el límite de IIS. Para más información e información sobre cómo cambiar el valor predeterminado de IIS, consulte KB942074.
BITSServerNotificationTypeTipo de datos: DWORD
Especifica cómo enviar el archivo de carga a la aplicación de servidor. Los valores posibles son: 0, 1 y 2.
Un valor de 0 significa que el archivo no se envía a la aplicación de servidor. BITS coloca el archivo de carga en el directorio especificado en el nombre remoto (el nombre remoto especificado al agregar el archivo al trabajo) sin notificar a la aplicación de servidor. Si el archivo existe actualmente en el directorio de destino, se reemplaza por el archivo de carga.
Un valor de 1 significa que BITS pasa la ubicación del archivo de carga a la aplicación de servidor especificada en la propiedad BITSServerNotificationURL . La aplicación de servidor procesa el archivo y genera un archivo de respuesta, si es necesario. De forma predeterminada, BITS quita los archivos de carga y respuesta del servidor después de recibir la respuesta de la aplicación de servidor. Para que BITS copie el archivo de carga en la ubicación especificada por el nombre de archivo remoto en el trabajo, incluya el encabezado BITS-Copy-File-To-Destination en la respuesta. Si no incluye el encabezado y desea guardar los archivos de carga y respuesta, debe copiar los archivos de carga y respuesta en una nueva ubicación antes de responder.
Un valor de 2 significa que BITS pasa el archivo de carga en el cuerpo de la solicitud a la aplicación de servidor especificada en la propiedad BITSServerNotificationURL . La aplicación de servidor procesa el archivo y pasa la respuesta en el cuerpo de la respuesta, si es necesario.
Para obtener más información sobre los encabezados de solicitud y respuesta, vea Protocolo de notificación para aplicaciones de servidor.
La aplicación de servidor debe proporcionar una respuesta en un plazo de cinco minutos. Si la aplicación de servidor no responde en un plazo de cinco minutos, el trabajo entra en el estado de error transitorio. Cuando expire el retraso de reintento , el servidor BITS enviará otra notificación a la aplicación de servidor (la aplicación de servidor debe escribirse para controlar las notificaciones duplicadas). BITS 1.5: El tiempo de espera de notificación es de 30 segundos.

El valor predeterminado es 0.
BITSServerNotificationURLTipo de datos: String
Opcional. Contiene la dirección URL de la aplicación de servidor en la que BITS publica el archivo de carga. Debe especificar una dirección URL si el valor de la propiedad BITSServerNotificationType es 1 o 2. La dirección URL está limitada a 2200 caracteres, no incluido el terminador NULL. La dirección URL debe ser una dirección URL HTTP; BITS no admite direcciones URL de notificación HTTPS.
Si la dirección URL no está disponible en el momento de la carga, BITS volverá a intentar la carga hasta que exista la dirección URL de notificación o hasta que expire el período de reintento.
Tenga en cuenta que si el nombre remoto especificado en el trabajo contiene una cadena de consulta, la cadena de consulta se anexa a la dirección URL que especifique. Por ejemplo, si el nombre remoto contiene https://myserver/myvdir/subdir/file.asp?ACCOUNT=86433 y especifica la configuración BITSServerNotificationURL como https://otherserver/myvdir2/bag.asp, la dirección URL a la que se publica BITS. https://otherserver/myvdir2/bag.asp?ACCOUNT=86433.
Si la dirección URL original es https://myserver/myvdir/file.txt y la dirección URL de notificación es myasp.asp, BITS usa http//myserver/myvdir/myasp.asp como dirección URL de notificación.
Si la parte de ruta de acceso y nombre de archivo de la dirección URL contiene caracteres Unicode no comunes a la página de códigos en el cliente y en el servidor, se producirá un error en la traducción de direcciones URL en el servidor y el trabajo BITS se colocará en el estado de error. Si la parte del servidor de la dirección URL contiene caracteres Unicode, debe codificar la parte del servidor mediante nombres de dominio internacionalizados (IDN).
BITSHostIdTipo de datos: Cadena
Establezca esta propiedad si la instalación del servidor es una granja de servidores web que no usa almacenamiento compartido.
Especifique el nombre del servidor o la dirección IP del servidor al que volver a conectarse después de interrumpir el proceso de carga. Normalmente, se especifica el nombre del servidor que está configurando. La dirección URL está limitada a 300 caracteres, no incluido el terminador NULL.
Si no especifica esta propiedad y se interrumpe el proceso de carga, es posible que BITS reanude el trabajo en otro servidor de la granja de servidores. Sin embargo, el servidor anterior todavía contiene el archivo de carga parcial de antes de la interrupción. BITS quita el archivo parcial después de que EXPIRE BITSSessionTimeout .
Nota: No use la propiedad BITSHostId si SSL se usa en una granja de servidores web que usa equilibrio de carga de red (NLB) o nombres DNS con varias direcciones IP, a menos que incluya el nombre del clúster y los nombres de servidor individuales en el certificado. (Si el nombre del servidor especificado en BITSHostId no coincide con el nombre común en el certificado, se producirá un error en el trabajo). En su lugar, para NLB, establezca el parámetro Affinity en Single para asegurarse de que el cliente se comunica con el mismo servidor en el futuro.
BITSHostIdFallbackTimeoutTipo de datos: DWORD
Número de segundos que el cliente bits intenta volver a conectarse al nombre del servidor BITSHostId antes de revertir al nombre de host especificado en el nombre de archivo remoto del trabajo. El temporizador comienza cuando BITS no puede conectarse al servidor BITSHostId . El temporizador se restablece cuando el cliente se conecta correctamente al servidor.
Tenga en cuenta que el valor de tiempo de espera sin progreso del trabajo (consulte IBackgroundCopyJob::SetNoProgressTimeout) debe ser mayor que este valor de tiempo de espera. Si no es así, se producirá un error en el trabajo antes de que expire el valor de tiempo de espera de reserva.
Establezca esta propiedad solo si establece la propiedad BITSHostId .
El valor predeterminado es 86 400 (1 día).
BITSAllowOverwritesTipo de datos: entero
Indica si un archivo de carga puede sobrescribir un archivo existente con el mismo nombre. El archivo de carga sobrescribe el archivo existente si BITSAllowOverwrites es 1.
El valor predeterminado es 0.
IIS 6.0: Solo puede establecer esta propiedad desde un script, no puede establecerla mediante la página de propiedades de la extensión BITS en la interfaz de usuario de IIS.

BITSCleanupUseDefaultTipo de datos: booleano
Indica si la tarea de limpieza usa las programaciones predeterminadas. De forma predeterminada, la tarea de limpieza se ejecuta cada 12 horas.
Establézcalo en 1 para usar la programación predeterminada; de lo contrario, 0 para especificar una programación.
Para especificar una programación, use las propiedades BITSCleanupCount y BITSCleanupUnits .
La tarea de limpieza limpia el directorio virtual mediante la eliminación de trabajos que no se han modificado dentro del período de tiempo de espera de la sesión (consulte BITSSessionTimeout).
El valor predeterminado es 1 usar la programación predeterminada.
IIS 6.0: No se admite.
BITSCleanupCountTipo de datos: entero
Especifica el intervalo que se va a esperar entre ejecutar la tarea de limpieza. El intervalo que puede especificar depende de las unidades. Para conocer los valores de intervalo posibles, vea la propiedad BITSCleanupUnits .
Esta propiedad se omite si BITSCleanupUseDefault es 0.
IIS 6.0: No se admite.

BITSCleanupUnitsTipo de datos: entero
Especifica las unidades para el intervalo de limpieza especificado en la propiedad BITSCleanupCount . Esta propiedad se omite si BITSCleanupUseDefault es 0.
Los valores posibles son:
0: Las unidades son minutos. Los valores posibles son de 1 a 60.
1: Las unidades son horas. Este es el valor predeterminado. Los valores posibles son de 1 a 24.
2: Las unidades son días. Los valores posibles son de 1 a 360.

IIS 6.0: No se admite.

BITSNumberOfSessionsLimitTipo de datos: entero
Limita el número de sesiones de carga que pueden existir simultáneamente para un usuario. Si el número de sesiones de un usuario es superior a este límite, cuando la tarea de limpieza ejecuta, eliminará las sesiones más recientes hasta que el número de sesiones para el usuario esté por debajo del límite.
El valor predeterminado es 50 sesiones.
IIS 6.0: No se admite.

BITSSessionLimitEnableTipo de datos: booleano
Indica si BITS limita el número de sesiones de carga por usuario. Si la configuración no está presente o es 0, el límite está deshabilitado.
Para especificar el límite, establezca la propiedad BITSNumberOfSessionsLimit .
El valor predeterminado es 1.
IIS 6.0: No se admite.

En el ejemplo siguiente se muestra cómo establecer las propiedades de extensión de IIS de BITS mediante El host de script de Windows. Si el directorio virtual apunta a un recurso compartido remoto, establezca también las propiedades UNCUserName y UNCPassword IIS.

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