При звонке
Appointment appt = Appointment.Bind (сервис, новый
ItemId (AppointmentID));
Я получил Запрос не прошел проверку схемы:
The required attribute 'BodyType' is missing.
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ProcessWebException(WebException webException) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\ServiceRequestBase.cs:line 990
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\ServiceRequestBase.cs:line 831
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\ServiceRequestBase.cs:line 724
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute() in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\Requests\MultiResponseServiceRequest.cs:line 157
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToItem(ItemId itemId, PropertySet propertySet) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\ExchangeService.cs:line 1281
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToItem[TItem](ItemId itemId, PropertySet propertySet) in \\REDMOND\EXCHANGE\BUILD\E15\15.00.0913.015\SOURCES\sources\dev\EwsManagedApi\src\EwsManagedApi\Core\ExchangeService.cs:line 1299
Я храню AppointmentID в другой базе данных для отслеживания. И я ожидал бы другого типа ошибки, если встреча не найдена.
Я ожидаю, что приложение загрузится без ошибок
Дополнительный код:
private void CancelAppointment(string AppointmentID)
{
try
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1, TimeZoneInfo.Utc);
ExchangeConnectionInfo ConnectInfo = null;
ConnectInfo = new ExchangeConnectionInfo(_mUserId);
ConnectToService();
var userEmail = ConnectInfo.GetUserEmail();
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, userEmail);
Appointment appt = Appointment.Bind(service, new ItemId(AppointmentID));
appt.Delete(DeleteMode.HardDelete, SendCancellationsMode.SendOnlyToAll);
}
catch (Exception e)
{
ErrorLog.Log("ExchangeIntegrationWS", "CancelAppointmentError", e.Message + "\n\n" + e.StackTrace);
}
}