У меня была проблема с обновлением собрания с использованием API обмена C #.Следующий код вызывает ошибку:
Microsoft.Exchange.WebServices.Data.ServiceResponseException: «Произошла внутренняя ошибка сервера. Операция не выполнена., Свойство: [{00020329-0000-0000-c000-000000000046}:'UCMeetingSetting'] UCMeetingSetting, PropertyErrorCode: NotFound, PropertyErrorDescription:. "
Код:
public Appointment UpdateAppointment(ExchangeCredentials credentials, Appointment appointment)
{
var service = CreateMsExchangeService(credentials);
if (service == null)
{
return null;
}
try
{
var invitation = MsAppointment.Bind(service, new ItemId(appointment.Id), GetAppointmentPropertySet());
SetMsAppointmentProperties(invitation, appointment);
//ExtendedPropertyDefinition extendedUCMeetingSetting = new ExtendedPropertyDefinition(
// new Guid("{00020329-0000-0000-C000-000000000046}"), "UCMeetingSetting", MapiPropertyType.String);
//invitation.SetExtendedProperty(extendedUCMeetingSetting, "Lala");
invitation.Update(ConflictResolutionMode.AutoResolve);
return appointment;
}
catch (Exception exception)
{
_logger.LogError(exception, $"Error occured while updating appointment {appointment.Subject.TraceFormat()} for {credentials.Username}");
}
return null;
}
Проблема устранена путем добавления отсутствующего свойства, но я не смог выяснить, чтов значение этого расширенного свойства:
public Appointment UpdateAppointment(ExchangeCredentials credentials, Appointment appointment)
{
var service = CreateMsExchangeService(credentials);
if (service == null)
{
return null;
}
try
{
var invitation = MsAppointment.Bind(service, new ItemId(appointment.Id), GetAppointmentPropertySet());
SetMsAppointmentProperties(invitation, appointment);
ExtendedPropertyDefinition extendedUCMeetingSetting = new ExtendedPropertyDefinition(
new Guid("{00020329-0000-0000-C000-000000000046}"), "UCMeetingSetting", MapiPropertyType.String);
invitation.SetExtendedProperty(extendedUCMeetingSetting, "Lala");
invitation.Update(ConflictResolutionMode.AutoResolve);
return appointment;
}
catch (Exception exception)
{
_logger.LogError(exception, $"Error occured while updating appointment {appointment.Subject.TraceFormat()} for {credentials.Username}");
}
return null;
}
Мои вопросы:
Почему требуется это расширенное свойство, когда я могу добавить в стоимость мусор?
Какдолжно ли значение выглядеть правильно или как оно?
Спасибо
Лотар