Freigeben über


Dateiübertragungskonsistenz

BITS garantiert, dass die Version der datei, die übertragen wird, konsistent ist, basierend auf der Dateigröße und dem Zeitstempel, nicht auf dem Inhalt (BITS schützt nicht vor Man-in-the-Middle-Angriffen). Um den Inhalt selbst zu überprüfen, können Sie die IBackgroundCopyFile3::GetTemporaryName-Methode verwenden, um den Namen der Datei abzurufen, die den heruntergeladenen Inhalt enthält, den Inhalt mithilfe Ihres eigenen Mechanismus zu überprüfen und dann die IBackgroundCopyFile3::SetValidationState-Methode aufzurufen, um bits anzugeben, ob der Inhalt der Datei gültig ist. Wenn Sie den Überprüfungsstatus auf FALSE festlegen und der Inhalt vom Ursprungsserver stammt, wechselt der Auftrag in den Fehlerzustand. Wenn der Inhalt von einem Peer stammt, lädt BITS die Datei vom Ursprungsserver herunter.

Wenn sich bei Downloads die Dateigröße oder der Zeitstempel ändert, während BITS die Datei überträgt, startet BITS nur die Übertragung dieser Datei neu. Wenn der Downloadauftrag beispielsweise zwei Dateien enthält und die Dateien auf dem Server aktualisiert werden, während BITS die zweite Datei überträgt, startet BITS nur die Übertragung der zweiten Datei neu. Die erste Datei, die bereits erfolgreich übertragen wurde, wird nicht aktualisiert, um die neuen Änderungen widerzuspiegeln.

Beachten Sie, dass Sie eine neue URL für jede neue Version der Datei erstellen sollten, wenn Sie die Datei besitzen, die vom Server heruntergeladen wird. Wenn Sie dieselbe URL für neue Versionen der Datei verwenden, können einige Proxyserver veraltete Daten aus ihrem Cache bereitstellen, da sie nicht beim ursprünglichen Server überprüfen, ob die Datei veraltet ist.

Wenn sich bei Uploads die Dateigröße oder der Zeitstempel während der Dateiübertragung ändert, generiert BITS einen Fehler, und der Auftrag wird in den BG_JOB_STATE_ERROR Zustand versetzt.

BITS synchronisiert keine Übertragungsanforderungen, wenn ein oder mehrere Benutzer anfordern, dass dieselbe Datei an denselben Speicherort übertragen wird. BITS überträgt die Datei für jede Anforderung separat.