IBackgroundCopyCallback::JobError 方法 (bits.h)

当作业的状态更改为BG_JOB_STATE_ERROR时,BITS 调用 JobError 方法的实现。

语法

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

参数

[in] pJob

包含与作业相关的信息,例如在发生错误之前传输的字节数和文件数。 它还包含恢复和取消作业的方法。 不释放 pJob; 当 JobError 方法返回时,BITS 释放接口。

[in] pError

包含错误信息,例如发生严重错误时正在处理的文件和错误说明。 不释放 pError; 当 JobError 方法返回时,BITS 释放接口。

返回值

此方法应返回 S_OK;否则,BITS 会继续调用此方法,直到返回 S_OK 。 出于性能原因,应将返回 非S_OK 值的次数限制为几次。 作为返回错误代码的替代方法,请考虑始终返回 S_OK 并在内部处理错误。 调用此方法的间隔是任意的。

请注意,如果此方法失败,并且你调用 了 IBackgroundCopyJob2::SetNotifyCmdLine 方法,则会执行命令行,并且不会再次调用此方法。

注解

确定错误原因后,执行以下选项之一:

  • 若要取消作业,请调用 IBackgroundCopyJob::Cancel 方法。 如果在成功上传文件后出错,取消请求对上传作业没有影响。 但是,如果作业类型BG_JOB_TYPE_UPLOAD_REPLY且上传成功,则调用 Cancel 方法将取消对答复数据的请求。
  • 若要接受在错误发生前成功传输的作业部分,请调用 IBackgroundCopyJob::Complete 方法。 此选项不适用于上传作业;无法完成上传作业的一部分。
  • 若要完成作业的处理,请修复问题,然后调用 IBackgroundCopyJob::Resume 方法。
如果作业保持错误状态 90 天, (默认 JobInactivityTimeout 组策略) ,BITS 将取消作业并删除相关的临时文件;作业取消不会影响已成功上传的文件。

暂时性错误不会生成对 JobError 方法的调用。

若要确定上传回复作业的上传、回复或服务器应用程序部分是否失败,请调用 IBackgroundCopyError::GetError 方法以检索发生错误的 上下文 。 如果BG_ERROR_CONTEXT_REMOTE_APPLICATION上下文,则服务器应用程序失败。 上传和答复的上下文BG_ERROR_CONTEXT_REMOTE_FILE。 如果未BG_SIZE_UNKNOWN BG_JOB_REPLY_PROGRESS 结构的 BytesTotal 成员,则回复失败。 否则,上传失败。

注意 BITS 支持每个用户最多同时发出四个通知。 如果一个或多个应用程序阻止用户返回所有四个通知,则在一个或多个阻止通知返回之前,以同一用户身份运行的应用程序将不会收到通知。 若要降低回调阻止其他通知的可能性,请保持实现简短。
 

示例

请参阅 IBackgroundCopyCallback 接口的示例代码。

要求

要求
最低受支持的客户端 Windows XP
最低受支持的服务器 Windows Server 2003
目标平台 Windows
标头 bits.h

另请参阅

IBackgroundCopyCallback

IBackgroundCopyError

IBackgroundCopyJob

IBackgroundCopyJob::Cancel

IBackgroundCopyJob::Resume