Обработка недопустимых значений XML при чтении электронной почты с помощью EWS

У нас есть приложение, которое использует StreamingSubscriptionConnection для чтения каждого сообщения электронной почты, отправляемого на конкретный почтовый ящик. Проблема, с которой я сталкиваюсь несколько раз в день во время разработки. Я получаю исключение {"'{квадратный символ}', шестнадцатеричное значение 0x1F, является недопустимым символом. Строка 1, позиция 1."} .

Вот трассировка стека:

   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ThrowInvalidChar(Int32 pos, Char invChar)
   at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
   at System.Xml.XmlTextReaderImpl.ParseText()
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.Read()
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.Read(XmlNodeType nodeType)
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.InternalReadElement(XmlNamespace xmlNamespace, String localName, XmlNodeType nodeType)
   at Microsoft.Exchange.WebServices.Data.EwsXmlReader.ReadStartElement(XmlNamespace xmlNamespace, String localName)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(EwsServiceXmlReader ewsXmlReader)

Как безопасно читать электронные письма с EWS, содержащие недопустимые символы?

После долгих поисков выяснилось, что можно было исправить эту проблему с помощью более старых версий API EWS. Однако в новейшей версии управляемого API, похоже, ни у кого нет исправления.

Это перекрестный пост из http://social.technet.microsoft.com/Forums/en-US/exchangesvrdevelopment/ thread / 22863099-1d93-47ac-a11b-08c6bf7facea .

Мне снова удалось получить исключение, а вот полная трассировка стека и то, что Exchange превращает в уведомление.

Я использую Exchange 2010 SP1.

EWS Notification Exception

Правка: я возвращаюсь к этому вопросу, так как он вызывает у меня серьезные проблемы, и исходный вопрос ясно указывает на проблему. Я ищу клиентские решения, которые изменяют поведение API управляемого веб-служб Exchange, чтобы фильтровать недопустимые символы из XML и избегать исключений. Исправления сервера Exchange вряд ли могут быть вариантом, если они не являются простыми изменениями конфигурации. Мое программное обеспечение будет запускаться на клиентских серверах Exchange, которые я не контролирую.

10
задан Adrian Cox 5 March 2014 в 11:20
поделиться