利用 Outlook 診斷記錄疑難排解 OAB 下載問題

 

適用版本: Exchange Server 2007 SP1, Exchange Server 2007

上次修改主題的時間: 2007-09-05

本主題將說明如何使用 Microsoft Office Outlook 用戶端診斷記錄和檢閱事件日誌項目,來疑難排解與離線通訊錄 (OAB) 下載相關的問題。除了討論如何檢閱事件日誌項目,本主題還進一步提供與下列 OAB 下載問題相關的詳細資訊:

  • 離線通訊錄順序
  • 伺服器端通訊清單名稱
  • OAB GUID

Microsoft Office 2003 Service Pack 1 (SP1) 和 Outlook 2003 Service Pack 2 (SP2) 一律會在每次 Outlook 執行完整 OAB 下載時,在應用程式事件日誌中產生一個事件。如果此下載因任何原因而失敗,則 Outlook 會記錄事件類型為「錯誤」的事件識別碼 27,以及包含失敗之相關資訊的描述。在此情況下,記錄的事件也會包含結果錯誤碼,讓您可用於協助隔離問題。

您可以藉由檢閱事件日誌項目來解決 OAB 下載問題,包括檢驗錯誤碼及 OAB 序號。接著,您可以將 Exchange 伺服器上的通訊清單名稱與 Outlook 用戶端相比較。

檢閱事件日誌項目

下列範例所示的是,使用者第一次在 Exchange 快取模式中啟動 Outlook 2003 時,所記錄之事件日誌項目的十六進位資料部分。

0000: 01 00 00 00 00 00 00 00

0008: 00 00 00 00 75 00 00 00

0010: 75 00 00 00 00 00 00 00

0018: 00 00 00 00 00 00 00 00

0020: e9 fd 00 00 02 a3 48 9b

0028: ba 12 c4 01 00 00 00 00

0030: 00 00 00 00 00 00 00 00

0038: 00 00 00 00 00 00 00 00

0040: 00 00 00 00 00 00 00 00

0048: 00 00 00 00 00 00 00 00

0050: 00 00 00 00 00 00 00 00

0058: 00 00 00 00 00 00 00 00

0060: 00 00 00 00 00 00 00 00

0068: 00 00 00 00 00 00 00 00

0070: 00 00 00 00 00 00 00 00

0078: 00 00 00 00 00 00 00 00

0080: 00 00 00 00 00 00 00 00

0088: 00 00 00 00 00 00 00 00

0090: 5c 00 47 00 6c 00 6f 00

0098: 62 00 61 00 6c 00 20 00

00a0: 41 00 64 00 64 00 72 00

00a8: 65 00 73 00 73 00 20 00

00b0:4c 00 69 00 73 00 74 00

00b8: 00 00 00 00 65 38 31 30

00c0:35 35 61 38 2d 62 64 38

00c8:38 2d 34 33 34 62 2d 39

00d0:37 31 37 2d 64 34 33 37

00d8: 61 62 34 35 31 35 36 39

00e0: 00 65 38 31 30 35 35 61

00e8:38 2d 62 64 38 38 2d 34

00f0:33 34 62 2d 39 37 31 37

00f8:2d 64 34 33 37 61 62 34

0100: 35 31 35 36 39 00

在所有的 OAB 事件日誌項目中,資料的第一個位元組會包含十六進位格式的錯誤碼。錯誤碼可指出完整下載的導因。在先前的範例中,資料的第一個位元組是包含於下列項目中:

0000: 01 00 00 00 00 00 00 00

在本範例中,第一個位元組為 01。

下表提供錯誤碼的描述。

離線通訊錄的錯誤碼

錯誤碼 描述

1

您的電腦上沒有任何 OAB 檔案,或者 OAB 檔案無法開啟。

2

您手動強制執行完整下載。

3

無法在用戶端上取得 OAB 的名稱。此行為會在您建立新的設定檔時發生。

4

無法在用戶端上取得 OAB 的 GUID。

5

OAB 的名稱已從伺服器上遺失。未預期完整下載會啟動或成功,但是無論如何會加以記錄。

6

OAB 的 GUID 已從伺服器上遺失。未預期完整下載會啟動或成功,但是無論如何會加以記錄。

7

伺服器的 OAB 名稱和用戶端的 OAB 名稱不同。

8

伺服器的 GUID 和用戶端的 GUID 不同。如果伺服器必須重新產生具有相同名稱的新 OAB 並捨棄舊的 OAB 檔案,則會發生此行為。如果 Outlook 用戶端是在不同的 Active Directory 目錄服務樹系間移動,也會發生此行為。

9

用戶端的序號大於伺服器的序號。

0a (10)

您想要 OAB 中的詳細資訊,但您的用戶端上沒有相對應的 OAB 檔案。如果您手動強制執行 OAB 下載,然後清除了 [下載前次同步處理後所做的變更] 核取方塊,便可能會發生此行為。

0b (11)

至少有一個增量 OAB 檔案從伺服器上遺失。

0c (12)

要下載的增量檔案總數可能不會大於完整 OAB 檔案的八分之一。

0d (13)

您將 Allow SRS Full OAB Download 登錄機碼設為 1,且 [傳送/接收] 設定是設定為永遠執行完整下載。

0e (14)

您未在系統上安裝 OAB 的地區設定,且進行了手動完整下載。Outlook 通常一個月會更新通訊錄一次,或者在您手動下載時更新。Outlook 會使用這些方法來更新通訊錄,以避免發生會造成每天完整下載的情況。

0f (15)

由於某些原因,將增量檔案套用至 OAB 檔案失敗。

您可以使用錯誤碼來判斷發生 0f 錯誤的原因。當您找出主要原因之後,接著可以採取一些步驟來解決問題。若要這樣做,請遵循下列步驟:

  1. 在應用程式日誌記錄中,找出事件識別碼為 27,且其「描述」區段中的內容為「正在啟動 OAB 下載」。
  2. 找出事件「描述」區段中的原因代碼,其中可能包含下列部分或所有判斷提示:
    • 0050: 7a 65 61 7a 61 74 61 7a zeazataz
    • 0058: 70 69 61 7a 7a 65 61 7a piazzeaz
    • 0060: 61 74 61 7a 70 69 61 7a atazpiaz
  3. 使用下列各項來解譯這些原因代碼:
    • "zaez" 為「簽章不相符」的判斷提示。
    • "zata" 為 MAPI_E_UNEXPECTED_ID 的判斷提示。
    • "zaip" 表示「HrApplyOABDiffs 失敗。必須完整下載。」
  4. 依據事件日誌中的資料而定,您可能需要安裝 Exchange Hotfix,相關說明請參閱 Microsoft 知識庫文章 895476 當 Outlook 下載離線通訊錄在 Exchange Server 2003 時,Outlook 可能會收到完整下載,而非累加下載

下表提供可能會在這些事件中出現之部分描述的範例。

Outlook 2003 事件日誌範例描述

事件日誌項目描述欄位 描述

「OAB ModDif 失敗。(詳細資訊記錄於事件資料中)」

「OAB (離線通訊錄) 檔案無效。已由虛設常式所取代。(事件資料中的最新錯誤)」

指出 Outlook 無法執行增量 OAB 下載。發生此情況時,Outlook 會嘗試完整的 OAB 下載。

「正在啟動 OAB 下載」

指出正在啟動完整的 OAB 下載,並指出下載的原因」。

「OAB 下載成功」

指出完整 OAB 下載順利完成。

除了結果錯誤碼之外,您還可以從應用程式事件日誌資料中收集下列資訊:

  • OAB 序號
  • 伺服器端通訊清單名稱,可用來填入離線通訊清單。
  • 完整 OAB 檔案下載的 GUID

您可以使用此資訊,協助識別為何您會看見關於差異或完整 OAB 下載所發生的特殊行為。

離線通訊錄序號

Outlook 和 Exchange Server 均會使用 OAB 序號,來判斷要下載至 Outlook 的 OAB 檔案。依據在用戶端上和差異檔案之累計大小上所找到的序號而定,會發生 OAB 的差異下載或完整下載。您可以藉由檢驗已記錄事件的資料部分,來驗證序號。

OAB 錯誤碼可於事件資料的第一行中找到 (位移 0001)。用戶端和伺服器的 OAB 序號可於事件日誌資料的第二行中找到 (位移 0008)。下列為這類資料的範例:

  • 0000: 09 00 00 00 00 00 00 00 ........
  • 0008: 9b 00 00 00 9a 00 00 00 ........

在此範例中,通訊錄的錯誤碼為 09,或只為 9。如同本主題的第一個表格中所示,此錯誤碼表示用戶端的序號大於伺服器的序號。用戶端序號包含於前 4 個位元組中 (在此範例中為 9b),而伺服器序號則在接下來的 4 個位元組中 (在此範例中為 9a)。

伺服器端通訊清單名稱

在用戶端之 OAB 與 Exchange 伺服器離線通訊清單名稱不相符或遺失的情況下,會發生完整 OAB 下載。在此案例中,所產生的結果錯誤碼為 3、5 或 7。您可以藉由檢驗已記錄事件的資料部分,來驗證 OAB (以及離線通訊清單) 名稱。

Exchange Server 用來填入伺服器上離線通訊清單的清單名稱可在事件資料的第 9 行開頭中找到 (位移 0090)。Outlook 所使用的清單名稱則可於事件資料的第 24 行開頭中找到 (位移 00b8)。下列為這類資料的範例:

0090: 5c 00 47 00 6c 00 6f 00 \.G.l.o.

0098: 62 00 61 00 6c 00 20 00 b.a.l. .

00a0:41 00 64 00 64 00 72 00 A.d.d.r.

00a8:65 00 73 00 73 00 20 00 e.s.s. .

00b0:4c 00 69 00 73 00 74 00 L.i.s.t.

00b8:00 00 5c 00 47 00 6c 00 .\.G.l.

00c0:6f 00 62 00 61 00 6c 00 o.b.a.l.

00c8:20 00 41 00 64 00 64 00 .A.d.d.

00d0:72 00 65 00 73 00 73 00 r.e.s.s.

00d8:20 00 4c 00 69 00 73 00 .L.i.s.

00e0:74 00 00 00 38 62 32 61 t...e810

在此範例中,離線通訊清單正在使用預設的全域通訊清單 (GAL)。

離線通訊錄 GUID

除了使用相符的通訊清單名稱,Exchange 和 Outlook 也都會使用相符的 GUID,以確定他們有保持同步。在 Outlook OAB GUID 不符合 Exchange 伺服器所使用之 GUID 的情況下,會發生完整的 OAB 下載。所產生的 OAB 結果錯誤碼為 4、6 或 8。您可以藉由檢驗事件資料,來驗證 OAB GUID。

Exchange Server 所使用的 GUID 開頭為位移 00b8。Outlook 所使用的 GUID 開頭為位移 00e0。下列為這類資料的範例:

00b8:00 00 00 00 65 38 31 30 ....e810

00c0:35 35 61 38 2d 62 64 38 55a8-bd8

00c8:38 2d 34 33 34 62 2d 39 8-434b-9

00d0:37 31 37 2d 64 34 33 37 717-d437

00d8:61 62 34 35 31 35 36 39 ab451569

00e0:00 65 38 31 30 35 35 61 .e81055a

00e8:38 2d 62 64 38 38 2d 34 8-bd88-4

00f0:33 34 62 2d 39 37 31 37 34b-9717

00f8:2d 64 34 33 37 61 62 34 -d437ab4

0100: 35 31 35 36 39 00 51569

如果 Outlook OAB 和 Exchange 電腦的 GUID 不相符,則您需要刪除現有的 OAB 檔案,並執行完整的 OAB 下載。

相關資訊

如需 OAB 的相關資訊,請參閱管理離線通訊錄

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.