Exchange Web Servicesを使用してGetRoomListsを呼び出すと、Exchange 2010が実行されています。以下のコードはコンソールアプリケーションを通じて実行されています。 "No Error"というXML応答に従って呼び出しは成功しますが、データは返されません。 Outlook Appointmentで1つ追加しようとすると数百の部屋が表示されるため、なぜこのようなことが起こるのかはわかりません。GetRoomListsは成功しましたがデータは返されません
EWS DLLバージョン1.2と2.0の両方を使用して、デフォルトの資格情報を使用したり、資格情報を渡したりしてみました。私は最初にこれを投稿した後、ExchangeヘッダーにはExchange 2012 SP2が使用されているとわかりましたので、ExchangeVersion enum値を使用するようにコードを更新しようとしましたが、結果に変更はありませんでした。
メールボックスを読むのにこのExchangeサーバー上でEWSを使用していますが、これまでは部屋はありませんでした。 GetRoomLists上の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>
MSDNドキュメントから
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トレース:http://msdn.microsoft.com/en-us/library/dd899416(v=exchg.140).aspx
あなたは別のアカウントを使用してみましたか?呼び出し元のIDにルームリストを表示する権限がない可能性がありますか?この場合、サーバはあなたのトレースに見られる空のリストを返します。 http://msdn.microsoft.com/en-us/library/exchange/dd899416(v=exchg.140).aspxには、サーバー上にルームリストを持たないため、通常の応答が表示されます。 –
@RomanGruber - ルームリストが実際に何であるかをちょっとだけ読んだだけで、ルームリストなしでOutlookのように部屋のリストを取得するにはどうすればいいですか? – Peter