利用 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 錯誤的原因。當您找出主要原因之後,接著可以採取一些步驟來解決問題。若要這樣做,請遵循下列步驟:
- 在應用程式日誌記錄中,找出事件識別碼為 27,且其「描述」區段中的內容為「正在啟動 OAB 下載」。
- 找出事件「描述」區段中的原因代碼,其中可能包含下列部分或所有判斷提示:
- 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
- 使用下列各項來解譯這些原因代碼:
- "zaez" 為「簽章不相符」的判斷提示。
- "zata" 為 MAPI_E_UNEXPECTED_ID 的判斷提示。
- "zaip" 表示「HrApplyOABDiffs 失敗。必須完整下載。」
- 依據事件日誌中的資料而定,您可能需要安裝 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 技術資源中心.