錯誤發生後會取得錯誤介面。
當作業狀態為 BG_JOB_STATE_ERROR 或BG_JOB_STATE_TRANSIENT_ERROR時,BITS 會產生錯誤物件。 當呼叫 IBackgroundCopyXXXX 介面方法失敗時,服務不會產生錯誤物件。 錯誤物件會一直使用,直到 BITS 開始傳輸該工作的資料(工作狀態會變為 BG_JOB_STATE_TRANSFERRING),或直到你的應用程式退出為止。
語法
HRESULT GetError(
[out] IBackgroundCopyError **ppError
);
參數
[out] ppError
錯誤介面提供錯誤代碼、錯誤描述及錯誤發生的上下文。 此參數同時識別錯誤發生時正在傳輸的檔案。 完成後釋放 ppError 。
返回值
此方法回傳以下 HRESULT 值及其他值。
| 回傳碼 | Description |
|---|---|
|
成功產生錯誤物件。 |
|
錯誤介面僅在錯誤發生(BG_JOB_STATE_ERROR 或 BG_JOB_STATE_TRANSIENT_ERROR)且 BITS 開始傳輸資料前(BG_JOB_STATE_TRANSFERRING)時才可用。 |
備註
當致命錯誤時,或在無進度逾時期滿(暫時性錯誤)工作會置於錯誤狀態(此期間可從 GetNoProgressTimeout 方法取得)。 請使用以下選項之一來判斷該工作是否錯誤:
- 要輪詢工作狀態,請呼叫 IBackgroundCopyJob::GetState 方法。 如果州政府BG_JOB_STATE_ERROR,該工作是錯誤的。
- 要在錯誤發生時收到通知,請實作 IBackgroundCopyCallback 介面(特別是 JobError 方法)。 接著呼叫 IBackgroundCopyJob::SetNotifyInterface 方法來註冊回調,並呼叫 IBackgroundCopyJob::SetNotifyFlags 方法來設定 BG_NOTIFY_JOB_ERROR 標誌。
- 要取消該工作,請呼叫 IBackgroundCopyJob::Cancel 方法。
- 若要儲存在錯誤發生前成功傳輸的檔案,請呼叫 IBackgroundCopyJob::Complete 方法。
- 要完成工作處理,先修正問題,然後呼叫 IBackgroundCopyJob::Resume 方法。
要判斷上傳回覆作業中上傳、回覆或伺服器應用部分是失敗,請呼叫 IBackgroundCopyError::GetError 方法以取得錯誤發生的 上下文 。 如果上下文BG_ERROR_CONTEXT_REMOTE_APPLICATION,伺服器應用程式會失敗。 如果錯誤出在上傳或回覆,那就是上下文BG_ERROR_CONTEXT_REMOTE_FILE。 若 BG_JOB_REPLY_PROGRESS 結構中的 BytesTotal 成員被BG_SIZE_UNKNOWN,上傳即告失敗。 否則,回覆就失敗了。
範例
請參閱 「處理錯誤 」主題中的範例程式碼。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | 視窗XP |
| 支援的最低伺服器 | Windows Server 2003 |
| 目標平臺 | 窗戶 |
| Header | Bits.h |
| Library | Bits.lib |
| DLL | QmgrPrxy.dll |