Sto chiamando GetRoomLists utilizzando i servizi Web di Exchange, stiamo eseguendo Exchange 2010. Il codice riportato di seguito viene eseguito tramite un'applicazione Console. La chiamata ha esito positivo, secondo la risposta XML di "Nessun errore", ma non viene restituito alcun dato. Abbiamo diverse centinaia di stanze elencate quando provi ad aggiungerne una tramite un Appuntamento di Outlook, quindi non sono sicuro del motivo per cui ciò accadrebbe.GetRoomLists ha esito positivo ma non restituisce alcun dato
Ho provato a utilizzare sia EWS DLL versione 1.2 e 2.0, utilizzando credenziali predefinite o passando le credenziali. Ho notato che, dopo aver pubblicato in origine questo, l'intestazione della risposta dice che stiamo utilizzando Exchange 2012 SP2, quindi ho provato ad aggiornare il mio codice per utilizzare il valore dell'enumerazione di ExchangeVersion, ma nessuna modifica nel risultato.
Ho utilizzato con successo EWS su questo server Exchange per leggere le cassette postali, ma mai stanze prima.
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();
Trace XML Da Richiesta Web Service/Response
<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 documentazione su GetRoomLists: http://msdn.microsoft.com/en-us/library/dd899416(v=exchg.140).aspx
Hai provato a usare diversi account? Forse l'identità chiamante non ha il permesso di vedere liste di stanze? In tal caso il server restituirà semplicemente la lista vuota, come si vede nella traccia. http://msdn.microsoft.com/en-us/library/exchange/dd899416(v=exchg.140).aspx elenca la tua risposta come tipica per non avere liste di stanze sul server. –
@RomanGruber - Avendo appena letto un po 'di più su cosa sia effettivamente una lista di stanze, come posso ottenere un elenco di stanze in cambio come fa Outlook senza una lista di stanze? – Peter