Compartir a través de


Impedir varias cargas

Al cargar un archivo, BITS crea un identificador de sesión que identifica la sesión de carga tanto en el cliente bits como en el servidor BITS. Si la conexión entre el cliente y el servidor de BITS se interrumpe mientras BITS carga un archivo, el cliente usará el identificador de sesión para intentar reanudar la carga.

Si el cliente BITS se conecta al mismo servidor que antes, el servidor reconocerá el identificador de sesión y la carga se reanudará desde el punto de interrupción. Sin embargo, si el cliente se conecta a un servidor diferente, el cliente debe iniciar la carga desde el principio porque el nuevo servidor no tiene el contexto de sesión o los datos cargados anteriormente. BITS puede conectarse a otro servidor cuando el servidor BITS se hospeda en una granja de servidores web y no se establece la propiedad de extensión BITS IIS, BITSHostId. La propiedad BITSHostId impide los reinicios al forzar que el cliente BITS se conecte a la dirección única del servidor anterior en lugar de a la dirección del servidor compartido.

El servidor BITS intentará enviar el archivo de carga solo una vez a la aplicación de servidor, pero es posible que el archivo se envíe más de una vez. Esto puede ocurrir, por ejemplo, si el servidor BITS envía el archivo a la aplicación de servidor y, a continuación, finaliza mientras espera la respuesta de la aplicación de servidor. El cliente BITS recibirá un código de error de la capa HTTP y volverá a intentar la carga después de un retraso. Si el servidor permanece sin conexión durante más tiempo que el tiempo de espera BITSHostIdFallbackTimeout , el cliente enviará finalmente la solicitud a la dirección del servidor compartido de nuevo; Un servidor BITS diferente recibirá el archivo y lo entregará de nuevo a la aplicación de servidor.

Un caso similar puede ocurrir incluso con un único servidor front-end. Por ejemplo, cuando el cliente ha cargado todo el archivo en el servidor, el bloque final hace que el servidor reenvíe el archivo a la aplicación de servidor. Si el servidor BITS o la aplicación de servidor finalizan después de procesar el archivo, pero antes de que se envíe la confirmación al cliente, el cliente recibirá un código de error y volverá a intentarlo más adelante. Cuando el cliente vuelva a intentarlo, el servidor BITS verá que se ha cargado el bloque final y volverá a reenviar el archivo a la aplicación de servidor. Si recibir el archivo de carga varias veces es un problema para la aplicación de servidor, debe considerar la posibilidad de incluir un identificador de transacción en los datos.