У меня есть служба Windows, написанная на C #, которая опрашивает сервер Exchange для обработки почты на ящик автоматической почты.
Она работала нормально, до сегодняшнего дня, когда выдает следующую ошибку: -
EXCEPTION: Microsoft.Exchange.WebServices.Data.ServiceVersionException: The property Hashtags is valid only for Exchange Exchange2015 or later versions.
at Microsoft.Exchange.WebServices.Data.PropertyBag.set_Item(PropertyDefinition propertyDefinition, Object value)
at Microsoft.Exchange.WebServices.Data.ComplexPropertyDefinitionBase.InternalLoadFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
at Microsoft.Exchange.WebServices.Data.ComplexPropertyDefinitionBase.LoadPropertyValueFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
at Microsoft.Exchange.WebServices.Data.PropertyBag.LoadFromXml(EwsServiceXmlReader reader, Boolean clear, PropertySet requestedPropertySet, Boolean onlySummaryPropertiesRequested)
at Microsoft.Exchange.WebServices.Data.ServiceObject.LoadFromXml(EwsServiceXmlReader reader, Boolean clearPropertyBag, PropertySet requestedPropertySet, Boolean summaryPropertiesOnly)
at Microsoft.Exchange.WebServices.Data.EwsServiceXmlReader.ReadServiceObjectsCollectionFromXml[TServiceObject](XmlNamespace collectionXmlNamespace, String collectionXmlElementName, GetObjectInstanceDelegate`1 getObjectInstanceDelegate, Boolean clearPropertyBag, PropertySet requestedPropertySet, Boolean summaryPropertiesOnly)
at Microsoft.Exchange.WebServices.Data.EwsServiceXmlReader.ReadServiceObjectsCollectionFromXml[TServiceObject](String collectionXmlElementName, GetObjectInstanceDelegate`1 getObjectInstanceDelegate, Boolean clearPropertyBag, PropertySet requestedPropertySet, Boolean summaryPropertiesOnly)
at Microsoft.Exchange.WebServices.Data.GetItemResponse.ReadElementsFromXml(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ServiceResponse.LoadFromXml(EwsServiceXmlReader reader, String xmlElementName)
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ParseResponse(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ParseResponse(EwsServiceXmlReader reader, WebHeaderCollection responseHeaders)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(EwsServiceXmlReader ewsXmlReader, WebHeaderCollection responseHeaders)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponseXml(Stream responseStream, WebHeaderCollection responseHeaders)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponse(IEwsHttpWebResponse response)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecute()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalLoadPropertiesForItems(IEnumerable`1 items, PropertySet propertySet, ServiceErrorHandling errorHandling)
at Microsoft.Exchange.WebServices.Data.ExchangeService.LoadPropertiesForItems(IEnumerable`1 items, PropertySet propertySet)
at MyServiceName.MyServiceName.CheckForNewEmails(ExchangeService service) in C:\TFSOnline\RPM Tools\MyServiceName\MyServiceName\MyServiceName.cs:line 177
at MyServiceName.MyServiceName.RunACheck(Object state) in C:\TFSOnline\RPM Tools\MyServiceName\MyServiceName\MyServiceName.cs:line 117
Строка, вызывающая сбой:
PropertySet properties = (BasePropertySet.FirstClassProperties);
service.LoadPropertiesForItems(emails, properties);
Конкретная ошибка:
Microsoft.Exchange.WebServices.Data.ServiceVersionException:
The property Hashtags is valid only for Exchange Exchange2015 or later versions.
Я нигде не использую или не обращаюсь к хэштегам, поэтому предположительно он содержитсяв BasePropertySet.FirstClassProperties.
Как я уже упоминал, я до сих пор успешно использовал приведенный выше код, сегодня он только начинает выдавать эту ошибку.
Я использую последнюю версию EWSСтабильная сборка: Exchange.WebServices.Managed.Api 2.2.1.1
BasePropertySet имеет только еще один элемент, IdOnly, и свойство, которое мне нужно, это InternetMessageId, поэтому я решил, что просто буду использовать это:
PropertySet properties = (BasePropertySet.IdOnly);
service.LoadPropertiesForItems(emails, properties);
Оказывается, InternetMessageId не покрывается свойством для получения идентификаторов ...
EXCEPTION: Microsoft.Exchange.WebServices.Data.ServiceObjectPropertyException:
You must load or assign this property before you can read its value.
at Microsoft.Exchange.WebServices.Data.PropertyBag.get_Item(PropertyDefinition propertyDefinition)
at Microsoft.Exchange.WebServices.Data.EmailMessage.get_InternetMessageId()
Часть кода, сообщающая об ошибке, не изменилась, и, насколько я могу,скажи, что былонет обновления для Office 365. Это влияет на Exchange.
Чтобы перепроверить, я взял предыдущую версию (скомпилированный код, а не исходный код, который я перекомпилировал) и установил ее вместо: все еще получала ту же ошибку.
Кто-нибудь имел эту ошибку раньше?Я гуглил его, но не получил ни одного удара.
Редактировать: Попробовал установить службу на другой машине, если не было особой вероятности того, что она была включена.
По-прежнему получайте ту же ошибку, даже с предыдущим кодом.