Condividi tramite


Prevenzione di più caricamenti

Quando si carica un file, BITS crea un ID sessione che identifica la sessione di caricamento sia nel client BITS che nel server BITS. Se la connessione tra il client BITS e il server viene interrotta mentre BITS carica un file, il client userà l'ID sessione per tentare di riprendere il caricamento.

Se il client BITS si connette allo stesso server di prima, il server riconoscerà l'ID sessione e il caricamento riprenderà dal punto di interruzione. Tuttavia, se il client si connette a un server diverso, il client deve avviare il caricamento dall'inizio perché il nuovo server non dispone del contesto di sessione o dei dati caricati in precedenza. BITS può connettersi a un server diverso quando il server BITS è ospitato in una Web farm e la proprietà di estensione IIS BITS, BITSHostId, non è impostata. La proprietà BITSHostId impedisce il riavvio forzando il client BITS a connettersi all'indirizzo univoco del server precedente anziché all'indirizzo del server condiviso.

Il server BITS tenterà di inviare il file di caricamento una sola volta all'applicazione server, ma è possibile che il file possa essere inviato più volte. Ciò può verificarsi, ad esempio, se il server BITS invia il file all'applicazione server e quindi termina durante l'attesa della risposta dall'applicazione server. Il client BITS riceverà un codice di errore dal livello HTTP e ritenta il caricamento dopo un ritardo. Se il server rimane offline per più tempo rispetto al timeout BITSHostIdFallbackTimeout , il client invierà di nuovo la richiesta all'indirizzo del server condiviso. Un server BITS diverso riceverà il file e lo restituirà nuovamente all'applicazione server.

Un caso simile può verificarsi anche con un singolo server front-end. Ad esempio, quando il client ha caricato l'intero file nel server, il blocco finale fa sì che il server inoltra il file all'applicazione server. Se il server BITS o l'applicazione server terminano dopo l'elaborazione del file, ma prima dell'invio del riconoscimento al client, il client riceverà un codice di errore e riprova più tardi. Quando il client esegue nuovi tentativi, il server BITS noterà che il blocco finale è stato caricato e inoltra nuovamente il file all'applicazione server. Se la ricezione del file di caricamento più volte è un problema per l'applicazione server, è consigliabile includere un identificatore di transazione nei dati.