Freigeben über


IBackgroundCopyCallback::JobError-Methode (bits.h)

BITS ruft Ihre Implementierung der JobError-Methode auf, wenn sich der Status des Auftrags in BG_JOB_STATE_ERROR ändert.

Syntax

HRESULT JobError(
  [in] IBackgroundCopyJob   *pJob,
  [in] IBackgroundCopyError *pError
);

Parameter

[in] pJob

Enthält auftragsbezogene Informationen, z. B. die Anzahl der Bytes und Dateien, die vor dem Auftreten des Fehlers übertragen wurden. Sie enthält auch die Methoden zum Fortsetzen und Abbrechen des Auftrags. Geben Sie pJob nicht frei. BITS gibt die Schnittstelle frei, wenn die JobError-Methode zurückgibt.

[in] pError

Enthält Fehlerinformationen, z. B. die Datei, die zum Zeitpunkt des Auftretens des schwerwiegenden Fehlers verarbeitet wird, und eine Beschreibung des Fehlers. Lassen Sie pError nicht los. BITS gibt die Schnittstelle frei, wenn die JobError-Methode zurückgibt.

Rückgabewert

Diese Methode sollte S_OK zurückgeben. Andernfalls ruft BITS diese Methode weiterhin auf, bis S_OK zurückgegeben wird. Aus Leistungsgründen sollten Sie die Anzahl der Rückgaben eines anderen Werts als S_OK auf einige Male beschränken. Alternativ zum Zurückgeben eines Fehlercodes sollten Sie immer S_OK zurückgeben und den Fehler intern behandeln. Das Intervall, in dem diese Methode aufgerufen wird, ist willkürlich.

Beachten Sie, dass, wenn diese Methode fehlschlägt und Sie die IBackgroundCopyJob2::SetNotifyCmdLine-Methode aufgerufen haben, die Befehlszeile ausgeführt wird und diese Methode nicht erneut aufgerufen wird.

Hinweise

Nachdem Sie die Fehlerursache ermittelt haben, führen Sie eine der folgenden Optionen aus:

  • Um den Auftrag abzubrechen, rufen Sie die IBackgroundCopyJob::Cancel-Methode auf. Die Abbruchanforderung hat keine Auswirkungen auf Uploadaufträge, wenn der Fehler nach dem erfolgreichen Hochladen der Datei aufgetreten ist. Wenn der Auftragstyp jedoch BG_JOB_TYPE_UPLOAD_REPLY ist und der Upload erfolgreich war, wird die Anforderung für die Antwortdaten durch Aufrufen der Cancel-Methode abgebrochen.
  • Um den Teil des Auftrags zu akzeptieren, der erfolgreich übertragen wurde, bevor der Fehler aufgetreten ist, rufen Sie die IBackgroundCopyJob::Complete-Methode auf. Diese Option gilt nicht für Uploadaufträge. Sie können einen Teil eines Uploadauftrags nicht abschließen.
  • Um die Verarbeitung des Auftrags abzuschließen, beheben Sie das Problem, und rufen Sie dann die IBackgroundCopyJob::Resume-Methode auf.
Wenn der Auftrag 90 Tage lang in einem Fehlerzustand verbleibt (StandardauftragInactivityTimeout Gruppenrichtlinie), bricht BITS den Auftrag ab und löscht zugehörige temporäre Dateien. Der Auftragsabbruch wirkt sich nicht auf Dateien aus, die erfolgreich hochgeladen wurden.

Vorübergehende Fehler generieren keine Aufrufe der JobError-Methode .

Um zu ermitteln, ob der Upload-, Antwort- oder Serveranwendungsteil eines Uploadantwortauftrags fehlgeschlagen ist, rufen Sie die IBackgroundCopyError::GetError-Methode auf, um den Kontext abzurufen, in dem der Fehler aufgetreten ist. Fehler bei der Serveranwendung, wenn der Kontext BG_ERROR_CONTEXT_REMOTE_APPLICATION ist. Der Kontext für Upload und Antwort ist BG_ERROR_CONTEXT_REMOTE_FILE. Die Antwort ist fehlgeschlagen, wenn das BytesTotal-Element der BG_JOB_REPLY_PROGRESS-Struktur nicht BG_SIZE_UNKNOWN ist. Andernfalls ist beim Hochladen ein Fehler aufgetreten.

Hinweis BITS unterstützt bis zu vier gleichzeitige Benachrichtigungen pro Benutzer. Wenn eine oder mehrere Anwendungen verhindern, dass alle vier Benachrichtigungen für einen Benutzer zurückgegeben werden, erhält eine Anwendung, die als derselbe Benutzer ausgeführt wird, keine Benachrichtigungen, bis mindestens eine der blockierenden Benachrichtigungen zurückgegeben wird. Um das Risiko zu verringern, dass Ihr Rückruf andere Benachrichtigungen blockiert, halten Sie Ihre Implementierung kurz.
 

Beispiele

Sehen Sie sich den Beispielcode für die IBackgroundCopyCallback-Schnittstelle an.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP
Unterstützte Mindestversion (Server) Windows Server 2003
Zielplattform Windows
Kopfzeile bits.h

Weitere Informationen

IBackgroundCopyCallback

IBackgroundCopyError

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Resume