我使用Exchange Web Services調用GetRoomLists,我們正在運行Exchange 2010.下面的代碼正在通過控制檯應用程序執行。調用成功,每個XML響應的「無錯誤」,但沒有數據返回。當您嘗試通過Outlook約會添加一個房間時,我們會列出幾百個房間,因此不確定爲何會發生這種情況。GetRoomLists成功但沒有返回數據
我試過使用EWS DLL版本1.2和2.0,使用默認憑據或傳入憑據。我注意到,在最初發布這個響應頭文件表示我們使用的是Exchange 2012 SP2,因此我嘗試更新我的代碼以使用該ExchangeVersion枚舉值,但沒有更改結果。
我已成功地在此Exchange服務器上使用EWS來讀取郵箱,但從未在房間之前。
C#
ExchangeService es = new ExchangeService(ExchangeVersion.Exchange2010);
es.TraceFlags = TraceFlags.EwsResponse | TraceFlags.EwsRequest;
es.TraceEnabled = true;
es.UseDefaultCredentials = true;
es.AutodiscoverUrl("[email protected]");
//this collection is empty after processing
EmailAddressCollection eac = es.GetRoomLists();
XML跟蹤從Web服務請求/響應
<Trace Tag="EwsRequest" Tid="9" Time="2013-03-13 20:39:41Z" Version="14.03.0032.000">
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010" />
</soap:Header>
<soap:Body>
<m:GetRoomLists />
</soap:Body>
</soap:Envelope>
</Trace>
<Trace Tag="EwsResponse" Tid="9" Time="2013-03-13 20:39:41Z" Version="14.03.0032.000">
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="14" MinorVersion="2" MajorBuildNumber="328" MinorBuildNumber="9" Version="Exchange2010_SP2" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetRoomListsResponse ResponseClass="Success" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ResponseCode>NoError</ResponseCode>
<m:RoomLists xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" />
</GetRoomListsResponse>
</s:Body>
</s:Envelope>
</Trace>
上GetRoomLists MSDN文檔:http://msdn.microsoft.com/en-us/library/dd899416(v=exchg.140).aspx
您是否嘗試過使用不同的帳戶?也許呼叫身份沒有權限查看任何房間列表?在這種情況下,服務器只會返回空列表,如跟蹤中所示。 http://msdn.microsoft.com/en-us/library/exchange/dd899416(v=exchg.140).aspx列出您的響應爲典型的沒有任何房間列表在服務器上。 – 2013-03-13 20:53:44
@RomanGruber - 剛剛讀了一下房間列表實際是什麼,我怎樣才能得到一個像Outlook一樣沒有房間列表的交換房間列表? – Peter 2013-03-13 21:42:48