2014-10-07 4 views
3

Я пытаюсь получить все Назначения комнаты в Exchange через Exchange EWS.Обмен EWS: Как получить все встречи в комнате

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 
service.UseDefaultCredentials = true;    
service.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback); 

// Return all the room lists in the organization. 
EmailAddressCollection roomLists = service.GetRoomLists(); 

System.Collections.ObjectModel.Collection<EmailAddress> rooms = service.GetRooms("[email protected]"); 

EmailAddress roomAdress = rooms[31]; 

FolderId folderid = new FolderId(WellKnownFolderName.Calendar, new Mailbox(roomAdress.Address)); 
FindItemsResults<Appointment> aps = service.FindAppointments(folderid, new CalendarView(DateTime.Now, DateTime.Now.AddHours(24))); 

Если я запускаю этот код я получаю сообщение об ошибке:

{"The specified folder could not be found in the store."}. 

И действительно, если бы я показал мне коллекцию всех папок для такого номера почтового ящика, нет папки внутри него.

Что я делаю неправильно? Все примеры в Интернете работают с WellKnownFolderName.Calendar.

ответ

2

Эта ошибка обычно указывает, что ваши учетные данные подходят для подключения к Exchange, но у вас нет прав на календарь, к которому вы пытаетесь получить доступ, так что вам необходимо предоставить доступ к почтовому ящику с помощью Add-MailboxPermission или предоставить доступ к Календарь Папка с помощью Add-MailboxFolderPermissions

Приветствия Glen

+0

, но когда я открываю календарь в Outlook, с теми же учетными данными, у меня нет проблемы с доступом к его. Должен ли я получить доступ к почтовому ящику еще одним способом? – murratore

+0

Вы пытались указать учетные данные, используя service.credentials? можете ли вы использовать EWSEditor для доступа к почтовому ящику комнаты http://ewseditor.codeplex.com/ –

+1

Добавление разрешения в папку календаря решило проблему. Например, чтобы позволить пользователю 'readonly' видеть календарные встречи на' room123': 'Add-MailboxFolderPermission -Identity [email protected]: \ Calendar -AccessRights Reviewer -User readonly @ test.example.com' –