Coerenza trasferimento file
BITS garantisce che la versione del file da trasferire sia coerente in base alle dimensioni e al timestamp del file, non al contenuto (BITS non protegge dagli attacchi man-in-the-middle). Per verificare il contenuto manualmente, è possibile usare il metodo IBackgroundCopyFile3::GetTemporaryName per ottenere il nome del file che contiene il contenuto scaricato, verificare il contenuto usando il proprio meccanismo e quindi chiamare il metodo IBackgroundCopyFile3::SetValidationState per indicare a BITS se il contenuto del file è valido. Se si imposta lo stato di convalida su FAL edizione Standard e il contenuto proviene dal server di origine, il processo passa allo stato di errore. Se il contenuto proviene da un peer, BITS scarica il file dal server di origine.
Per i download, se le dimensioni del file o il timestamp cambiano mentre BITS trasferisce il file, BITS riavvia solo il trasferimento di tale file. Ad esempio, se il processo di download contiene due file e i file vengono aggiornati nel server mentre BITS trasferisce il secondo file, BITS riavvia solo il trasferimento del secondo file. Il primo file, già trasferito correttamente, non viene aggiornato per riflettere le nuove modifiche.
Si noti che se si è proprietari del file scaricato dal server, è necessario creare un nuovo URL per ogni nuova versione del file. Se si usa lo stesso URL per le nuove versioni del file, alcuni server proxy potrebbero fornire dati non aggiornati dalla cache perché non verificano con il server originale se il file non è aggiornato.
Per i caricamenti, se le dimensioni del file o il timestamp cambia durante il trasferimento del file, BITS genera un errore e il processo viene inserito nello stato BG_JOB_STATE_ERROR.
BITS non sincronizza le richieste di trasferimento quando uno o più utenti richiedono che lo stesso file venga trasferito nello stesso percorso. BITS trasferisce il file per ogni richiesta separatamente.