2016-02-15 5 views
0

Я использую EWS 2.2 для запроса на Exchange Server. Все работает для всех Appointment (я испытал много сотен предметов без каких-либо проблем), за исключением одного: Возврат Appointment не имеет ICalUid, как это возможно?Exchange (EWS 2.2) возвращает null ICalUid

Вот мой код

ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2013); 
exchangeService.Credentials = ...; 
exchangeService.Url = ...; 

var results = exchangeService.FindItems(folderId, searchFilter, view); 

Мои PropertySet определяется следующим образом:

{ ItemSchema.Subject, ItemSchema.Categories, AppointmentSchema.ICalUid, 
AppointmentSchema.Start, AppointmentSchema.End, AppointmentSchema.AppointmentType, 
AppointmentSchema.Duration }; 

ответ

1

Это обычно означает, что соответствующие свойства не были установлены на любой элемент вы пытаетесь получить доступ. Вы не используете CalendarView, поэтому также возможно, что элемент, к которому вы пытаетесь получить доступ, не является Назначением (проверьте ItemClass), лучший способ подтвердить - попытаться открыть объект в редакторе Mapi, например MfcMapi или OutlookSpy, и вы будете способный видеть, что основные свойства находятся в элементе.

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

+0

Спасибо за ответ. Я загрузил 'OutlookSpy' и обнаружил, что GlobalObjectId (0x8033) не находится в списке свойств. Так что это, очевидно, моя проблема. Вопрос сейчас: как возможно, что «Назначение» не имеет идентификатора? – Bidou

+0

Я также проверил «ClassName», как вы предложили, и нашел «IPM.Appointment», который, кажется, в порядке ... – Bidou

+0

Отсутствие GlobalObjectId обычно вызвано ошибками сторонних клиентов CalCheck был разработан для сканирования и исправления (наряду с другими проблемы) https://support.microsoft.com/en-us/kb/2678030 –