Следующее исключение произошло на компьютере клиента:
System.ArgumentException: '', hexadecimal value 0x1F, is an invalid character.
at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize)
at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd)
at System.Xml.XmlUtf8RawTextWriter.WriteString(String text)
at System.Xml.XmlUtf8RawTextWriterIndent.WriteString(String text)
at System.Xml.XmlWellFormedWriter.WriteString(String text)
at System.Xml.Linq.ElementWriter.WriteElement(XElement e)
at System.Xml.Linq.XElement.WriteTo(XmlWriter writer)
at System.Xml.Linq.XElement.Save(XmlWriter writer)
at System.Xml.Linq.XElement.Save(String fileName, SaveOptions options)
at System.Xml.Linq.XElement.Save(String fileName)
К сожалению, больше информации нет.
Ошибка немного сбивает с толку.
0x1F
- знак вопроса. Если вопросительный знак был включен в имя какого-либо элемента или атрибута (что является недопустимым), исключение будет выдано при создании XElement
или XAttribute
с недопустимым именем, а не в момент сохранения на диск.
Исключение было выдано XmlUtf8RawTextWriter
классом, который XElement
использует внутренне, я полагаю (приложение не использует). Нельзя ли ожидать, что XElement
сам решит проблемы с кодированием и т. Д.? Что могло вызвать его падение? Это несовместимость ОС или фреймворка?
Я понимаю, что мой вопрос довольно расплывчатый, но я должен оперировать ограниченной информацией.
Буду признателен, если кто-нибудь хотя бы укажет мне правильное направление. Я не видел такой ошибки раньше.