Abschließen und Abbrechen eines Auftrags

Um einen Übertragungsauftrag abzuschließen, rufen Sie die IBackgroundCopyJob::Complete-Methode auf. Bei Downloadaufträgen können Sie die Complete-Methode aufrufen, bevor alle Dateien im Auftrag übertragen wurden (bevor der Status des Auftrags BG_JOB_STATE_TRANSFERRED wird). Nur die Dateien, die BITS erfolgreich an den Client übertragen hat, bevor Sie die Complete-Methode aufgerufen haben, sind für den Benutzer verfügbar.

Rufen Sie bei Uploadaufträgen die Complete-Methode nur auf, wenn der Status des Auftrags BG_JOB_STATE_TRANSFERRED ist. Um zu bestimmen, wann der Status des Auftrags BG_JOB_STATE_TRANSFERRED ist, rufen Sie die Statuseigenschaft des Auftrags ab, oder registrieren Sie sich, um BG_NOTIFY_JOB_TRANSFERRED Ereignisbenachrichtigung zu erhalten.

Um einen Übertragungsauftrag abzubrechen, rufen Sie die IBackgroundCopyJob::Cancel-Methode auf. Die Cancel-Methode entfernt den Auftrag aus der Übertragungswarteschlange und die temporären Dateien aus dem Client. In der Regel rufen Sie diese Methode auf, wenn Sie einen Fehler im Zusammenhang mit dem Auftrag nicht beheben können.

Die Cancel-Methode bricht einen Upload ab, wenn der Upload nicht abgeschlossen ist. Wenn der Upload abgeschlossen ist und der Auftrag vom Typ BG_JOB_TYPE_UPLOAD_REPLY ist, bricht die -Methode die Antwort ab.

Wenn Sie die Complete-Methode oder die IBackgroundCopyJob::Cancel-Methode nicht innerhalb von 90 Tagen aufrufen (Standard jobInactivityTimeout Gruppenrichtlinie), bricht der Dienst den Auftrag ab. Wenn der Dienst den Auftrag abbricht, stehen die heruntergeladenen Dateien und die Antwortdatei für den Client nicht zur Verfügung. Der Auftragsabbruch wirkt sich nicht auf Dateien aus, die erfolgreich hochgeladen wurden. Sie sollten immer die Complete - oder Cancel-Methode aufrufen und sich nicht auf die JobInactivityTimeout-Richtlinie verlassen, um Ihre Aufträge zu bereinigen. Aufträge, die in der Warteschlange verbleiben, können Benutzer daran hindern, andere Aufträge zu erstellen, wenn das MaxJobsPerUser- oder MaxJobsPerMachine-Richtlinienlimit erreicht ist.