如何使用 Microsoft Office Outlook 記錄功能疑難排解 Microsoft Exchange Server 2007 可用性服務

 

上次修改主題的時間: 2011-02-16

Microsoft Exchange Server 2007 可用性服務會以名為 GetUserAvailabilityResponse 的 XML 訊息形式傳回空閒/忙碌資訊要求的結果。Microsoft Office Outlook 2007 用戶端會使用 GetUserAvailabilityResponse 訊息,顯示會議約定的空閒/忙碌資訊以及空閒/忙碌資訊要求內含之所有使用者的可用性狀態。

如果可用性服務並未擷取任何所要求使用者的空閒/忙碌資訊,則 Outlook 2007 會將失敗的嘗試顯示為 [沒有資訊]。當您嘗試判斷沒有資訊傳回的原因時,此回應訊息毫無幫助。但是,此訊息包含您可用來診斷失敗原因的資訊。使用 Outlook 2007 的記錄功能,即可針對診斷目的顯示回應訊息。

如何使用 Outlook 2007 記錄功能

在 Outlook 2007 上啟用記錄功能

  1. 開啟 Outlook

  2. 按一下 [工具],然後按一下 [選項]。

  3. 按一下 [其他] 索引標籤,然後按一下 [進階選項]。

  4. 按一下以啟用 [啟用記錄 (疑難排解)] 核取方塊,然後按兩次 [確定]。

  5. 關閉而後啟動 Outlook。

important重要事項:
確定在完成疑難排解後關閉記錄功能。如果未關閉記錄功能,程式則會繼續建立記錄檔。基於效能與安全性的理由,您只應在有需要時開啟記錄功能。

可用性服務記錄檔位於 Outlook 使用者的 %Temp%\olkas 資料夾中。Outlook 會根據它所執行的動作,產生三種不同的記錄檔類型。每個檔案名稱會併入一個有兩個字母或三個字母的代碼以及一個日期與時間的戳記,以擁有獨特性。三種記錄類型如下:

  • OOF (郵件答錄機)

  • MS (會議建議)

  • FB (空閒/忙碌資訊)

以下是在 3 月 5 日上午 11:00 點左右產生的空閒/忙碌資訊記錄檔範例:

20070305-110303994-fb.log

每次在 [排程助理員] 索引標籤上將一或多位使用者加入至會議邀請時,便會產生空閒/忙碌資訊記錄檔。記錄檔包含從用戶端傳送至可用性服務的 GetUserAvailabilityRequest XML 訊息。此檔案也包含可用性服務所傳回的對應 GetUserAvailabilityResponse XML 訊息。系統會針對用戶端所傳送的每一項要求產生新的空閒/忙碌資訊記錄檔。

以下是空閒/忙碌資訊記錄檔中的 GetUserAvailabilityResponse 訊息範例:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="685" MinorBuildNumber="24" xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" /></soap:Header><soap:Body><GetUserAvailabilityResponse xmlns="https://schemas.microsoft.com/exchange/services/2006/messages"><FreeBusyResponseArray><FreeBusyResponse><ResponseMessage ResponseClass="Error"><MessageText>Mailbox logon failed., inner exception: Cannot open mailbox /o=domain/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=user.</MessageText><ResponseCode>ErrorMailboxLogonFailed</ResponseCode><DescriptiveLinkKey>0</DescriptiveLinkKey><MessageXml><ExceptionType xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">Microsoft.Exchange.InfoWorker.Common.Availability.MailboxLogonFailedException</ExceptionType><ExceptionCode xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5008</ExceptionCode></MessageXml></ResponseMessage><FreeBusyView><FreeBusyViewType xmlns="https://schemas.microsoft.com/exchange/services/2006/types">None</FreeBusyViewType></FreeBusyView></FreeBusyResponse></FreeBusyResponseArray></GetUserAvailabilityResponse></soap:Body></soap:Envelope>

回應訊息包含許多資訊。但是,只有下列區段包含必要的錯誤資訊:

**MessageText:**包含失敗的相關資訊

**ResponseCode:**包含造成失敗的例外狀況

**ExceptionCode:**包含失敗的 Web 回應碼

MessageText 區塊通常包含完整的訊息,以說明空閒/忙碌資訊查閱失敗的原因。ResponseCode 與 ExceptionCode 值對應於 Web 例外狀況代碼。REF _Ref160587194 \h \* MERGEFORMAT 錯誤!找不到參考來源。這三個區段包含協助疑難排解失敗所需的資訊。

疑難排解特定失敗

下列範例顯示一些常見的可用性查閱失敗,以及這些失敗顯示在 Outlook 空閒/忙碌資訊記錄中的方式。為求清晰明確,這些範例只包含本主題的「如何使用 Outlook 2007 記錄功能」一節中所提到記錄的三個區段。

信箱登入失敗

可用性服務會藉由直接存取信箱,以從 Exchange 2007 信箱行事曆擷取空閒/忙碌資訊。如果可用性服務因為登入失敗而無法存取信箱,該服務便無法擷取資訊。在此情況下,會產生下列記錄項目:

<MessageText>Mailbox logon failed., inner exception: Cannot open mailbox /o=domain/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=user.</MessageText>
<ResponseCode>ErrorMailboxLogonFailed</ResponseCode>
<ExceptionCode xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5008</ExceptionCode>

在此範例中,MessageText 區塊包含有關失敗以及有關未開啟信箱之識別碼的簡單說明。登入失敗可能是由數種狀況造成的。這些狀況包含信箱儲存區服務失敗與卸載的資料庫。記錄此錯誤後,您應確認目標使用者的信箱狀態。

權限錯誤

可用性服務支援可讓 Exchange 2007 信箱擁有者授與其行事曆之各種等級存取權的行事曆權限模型。根據預設,每個人至少有查看空閒/忙碌資訊所需的最低權限。不過,可以從 Outlook 變更權限,只讓明確的使用者具有存取權。

如果使用者將出席者加入至會議邀請,而且該出席者已設定不允許該使用者存取的行事曆權限,可用性服務便無法擷取出席者的空閒/忙碌資訊。

因為 Outlook 2007 用戶端在 [約會] 空閒/忙碌資訊格線中將此失敗呈現為 [沒有資訊],若未藉助於 Outlook 記錄功能,此訊息便難以診斷為權限問題。例如,在此情況下,會記錄下列訊息:

<MessageText>Caller does not have access to free busy data.</MessageText>
<ResponseCode>ErrorNoFreeBusyAccess</ResponseCode>
<ExceptionCode xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5037</ExceptionCode>

記錄此錯誤後,您應與目標信箱擁有者合作,以確認行事曆權限。

Proxy 失敗

可用性服務可以存取本機 Active Directory 站台中的任何 Exchange 2007 信箱行事曆。如果可用性服務接到針對其他 Active Directory 站台中的信箱空閒/忙碌資訊的服務要求,此服務便會將此要求代理至該 Active Directory 站台中的可用性服務。

代理至其他可用性服務的空閒/忙碌資訊要求失敗時,回應訊息中會包含來自遠端可用性服務的失敗資訊。例如,會記錄下列訊息:

<MessageText>The proxy request failed because the remote server returned an error., inner exception: Microsoft.Exchange.InfoWorker.Common.Availability.MailboxLogonFailedException:Mailbox logon failed., inner exception: Cannot open mailbox /o=domain/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=user.</MessageText>
<ResponseCode>ErrorProxyRequestProcessingFailed</ResponseCode>
<ExceptionCode xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5016</ExceptionCode>

此錯誤表示遠端可用性服務無法開啟目標信箱。這類似於第一個範例中的失敗。在此狀況下,您應確認目標使用者的信箱狀態,看看信箱是否可以使用。

可用性服務因為遠端可用性服務失敗而無法代理空閒/忙碌資訊的要求時,回應訊息可能會包含與下面類似的堆疊追蹤資訊:

<MessageText>System.Net.WebException: Unable to connect to the remote server ---&gt; System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket&amp; socket, IPAddress&amp; address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception&amp; exception)   --- End of inner exception stack trace ---   at System.Web.Services.Protocols.WebClientAsyncResult.WaitForResponse()   at System.Web.Services.Protocols.WebClientProtocol.EndSend(IAsyncResult asyncResult, Object&amp; internalAsyncState, Stream&amp; responseStream)   at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)   at Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)   at Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.CompleteRequest(). The request information is ProxyWebRequest type = CrossSite, url = https://Servername.domain.com/EWS/Exchange.asmx
Mailbox list = &lt;mod4user9&gt;SMTP:user@domain.com, Parameters: windowStart = 2/20/2007 8:00:00 AM, windowEnd = 3/22/2007 8:00:00 AM, MergedFBInterval = 30, RequestedView = Detailed
.</MessageText>
<ResponseCode>ErrorProxyRequestProcessingFailed</ResponseCode>
<ExceptionCode xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5016</ExceptionCode>

此錯誤表示遠端可用性服務並未對代理的要求提供服務。回應訊息也會包含您可以在遠端伺服器上用於其他偵錯活動的堆疊追蹤資訊 (如果這是必要資訊的話)。此錯誤是因為遠端伺服器上的預設網站暫停而產生的。

Exchange 2007 支援在樹系之間共用空閒/忙碌資訊。使用適當的組態,可用性服務即可將跨樹系的要求代理至遠端樹系中的其他可用性服務。可用性服務無法將要求代理至其他樹系時,回應訊息可能會包含與下面類似的資訊:

<MessageText>Unable to send cross-forest request for mailbox &lt;Fred Meyers&gt;SMTP:user@domain.com because of invalid configuration., inner exception: Configuration information for forest/domain domain.com could not be found in Active Directory.</MessageText>
<ResponseCode>ErrorProxyRequestProcessingFailed</ResponseCode>
<ExceptionCode xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5016</ExceptionCode>

此錯誤表示用來啟用與 tailspintoys.com 樹系一起跨樹系共用空閒/忙碌資訊所需的組態不完整或設定錯誤。

舊版空閒/忙碌資訊失敗

可用性服務會從空閒/忙碌資訊公用資料夾擷取舊版 Exchange 信箱擁有者的空閒/忙碌資訊。這與 Outlook 所使用的方法一樣。可用性服務若未從空閒/忙碌資訊公用資料夾擷取舊版信箱的空閒/忙碌資訊,則會記錄下列錯誤:

<MessageText>The remote server returned an error: (503) Server Unavailable.. The request information is http://ServerName.Domain.com/public/?Cmd=freebusy&amp;start=2007-02-20T14:00:00Z&amp;end=2007-03-22T14:00:00Z&amp;interval=30&amp;u=username@domain.com.</MessageText>
<ResponseCode>ErrorPublicFolderRequestProcessingFailed</ResponseCode>
<ExceptionCode xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5017</ExceptionCode>
note附註:
在此訊息中,ServerName 代表實際的伺服器名稱。

此失敗表示因為 ServerName 伺服器上的公用資料夾儲存區已卸載而發生「503 服務無法使用」錯誤。