Tôi đang gọi GetRoomLists bằng Exchange Web Services, chúng tôi đang chạy Exchange 2010. Mã dưới đây đang được thực thi thông qua ứng dụng Console. Cuộc gọi thành công, theo phản hồi XML của "No Error", nhưng không có dữ liệu nào được trả về. Chúng tôi có vài trăm phòng được liệt kê khi bạn cố gắng thêm một thông qua một cuộc hẹn Outlook, vì vậy không chắc chắn lý do tại sao điều này sẽ xảy ra.GetRoomLists thành công nhưng không trả về dữ liệu
Tôi đã thử sử dụng cả EWS DLL phiên bản 1.2 và 2.0, sử dụng bằng chứng xác thực mặc định hoặc chuyển qua bằng chứng xác thực. Tôi nhận thấy sau khi ban đầu gửi bài này rằng tiêu đề phản hồi nói rằng chúng tôi đang sử dụng Exchange 2012 SP2, vì vậy tôi đã thử cập nhật mã của mình để sử dụng giá trị enV ExchangeVersion đó, nhưng không có thay đổi trong kết quả.
Tôi đã sử dụng thành công EWS trên máy chủ Exchange này để đọc hộp thư nhưng không bao giờ phòng trước.
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 vết Từ Request 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 Documentation trên GetRoomLists: http://msdn.microsoft.com/en-us/library/dd899416(v=exchg.140).aspx
Bạn đã cố gắng sử dụng các tài khoản khác nhau? Có thể danh tính cuộc gọi không được phép xem bất kỳ danh sách phòng nào? Trong trường hợp đó máy chủ sẽ chỉ trả về danh sách trống, như đã thấy trong dấu vết của bạn. http://msdn.microsoft.com/en-us/library/exchange/dd899416(v=exchg.140).aspx liệt kê câu trả lời của bạn là điển hình cho việc không có bất kỳ danh sách phòng nào trên máy chủ. –
@RomanGruber - Chỉ cần đọc thêm một chút về những gì một Danh sách phòng thực sự là, làm thế nào tôi có thể nhận được một danh sách các phòng trao đổi như Outlook không có một danh sách phòng? – Peter