Share via


Méthode IBackgroundCopyJob ::GetError (bits.h)

Récupère l’interface d’erreur après qu’une erreur s’est produite.

BITS génère un objet d’erreur lorsque l’état du travail est BG_JOB_STATE_ERROR ou BG_JOB_STATE_TRANSIENT_ERROR. Le service ne crée pas d’objet d’erreur lorsqu’un appel à une méthode d’interface IBackgroundCopyXXXXxx échoue. L’objet d’erreur est disponible jusqu’à ce que BITS commence à transférer les données (l’état du travail passe à BG_JOB_STATE_TRANSFERRING) pour le travail ou jusqu’à ce que votre application se termine.

Syntaxe

HRESULT GetError(
  [out] IBackgroundCopyError **ppError
);

Paramètres

[out] ppError

Interface d’erreur qui fournit le code d’erreur, une description de l’erreur et le contexte dans lequel l’erreur s’est produite. Ce paramètre identifie également le fichier en cours de transfert au moment où l’erreur s’est produite. Relâchez ppError lorsque vous avez terminé.

Valeur retournée

Cette méthode retourne les valeurs HRESULT suivantes, ainsi que d’autres.

Code de retour Description
S_OK
L’objet d’erreur a été correctement généré.
BG_E_ERROR_INFORMATION_UNAVAILABLE
L’interface d’erreur n’est disponible qu’après qu’une erreur s’est produite (BG_JOB_STATE_ERROR ou BG_JOB_STATE_TRANSIENT_ERROR) et avant que BITS ne commence à transférer des données (BG_JOB_STATE_TRANSFERRING).

Remarques

Le travail est placé dans un état d’erreur en cas d’erreurs irrécupérables ou après l’expiration de la période de délai d’expiration sans progression pour les erreurs temporaires (cette période est récupérée à partir de la méthode GetNoProgressTimeout ). Utilisez l’une des options suivantes pour déterminer si le travail est en erreur :

L’interface IBackgroundCopyError contient des informations que vous utilisez pour déterminer la cause de l’erreur et si le processus de transfert peut se poursuivre. Une fois que vous avez déterminé la cause de l’erreur, effectuez l’une des options suivantes : Si le travail reste dans un état d’erreur pendant 90 jours (stratégie de groupe JobInactivityTimeout par défaut), le service supprime le travail de la file d’attente et supprime les fichiers temporaires sur le client ; la suppression du travail n’affecte pas les fichiers qui ont été correctement chargés.

Pour déterminer si la partie du chargement, de la réponse ou de l’application serveur d’un travail upload-reply a échoué, appelez la méthode IBackgroundCopyError ::GetError pour récupérer le contexte dans lequel l’erreur s’est produite. L’application serveur a échoué si le contexte est BG_ERROR_CONTEXT_REMOTE_APPLICATION. Si l’erreur se produit avec le chargement ou la réponse, le contexte est BG_ERROR_CONTEXT_REMOTE_FILE. Le chargement a échoué si le membre BytesTotal de la structure BG_JOB_REPLY_PROGRESS est BG_SIZE_UNKNOWN. Sinon, la réponse a échoué.

Exemples

Consultez l’exemple de code dans la rubrique Gestion des erreurs .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP
Serveur minimal pris en charge Windows Server 2003
Plateforme cible Windows
En-tête bits.h
Bibliothèque Bits.lib
DLL QmgrPrxy.dll

Voir aussi

IBackgroundCopyCallback ::JobError

IBackgroundCopyError

IBackgroundCopyJob ::GetState