Почему я получаю ошибку проверки Xml при запуске моего приложения на одном сервере, но не на системах моего другого сервера?

#c# #asp.net #xml-validation #iis-10 #windows-server-2019

#c# #asp.net #xml-проверка #iis-10 #windows-server-2019

Вопрос:

Я развернул свой ASP.Net Применение C # к трем другим системам без проблем. Я не менял код приложения или даже программу установки. Я также проверил и убедился, что все мои настройки и подключения IIS 10 настроены как можно ближе к другим средам. насколько это возможно. Одна из систем / сред, в которых приложение успешно выполняется, работает под управлением Windows Server 2008 вместе с IIS 7, в то время как две другие работают под управлением Windows 10 и IIS 10. Система, в которой происходит сбой приложения, работает под управлением Windows Server 2019 и IIS 10. Чего я не понимаю, так это почему я получаю эту ошибку, когда я ничего не изменил, кроме системы и сервера, на которых запущено мое приложение:

 XmlValidator::ValidateXml() - Error Validating xml - System.Exception:  Validation error: The element 'systemBalances' in namespace 'http://www.alpha.com/system/schemas/v1.0/' has invalid child element 'accessible' in namespace 'http://www.alpha.com/system/schemas/v1.0/'.

   at ABC.Common.XMLValidators.XmlValidator.ValidationHandler(Object sender, ValidationEventArgs args) in C:XYZ SrcDevABCABC[Dev]AlphaWebServicesABC.CommonXmlValidator.cs:line 134
   at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(ValidationEventHandler eventHandler, Object sender, XmlSchemaValidationException e, XmlSeverityType severity)
   at System.Xml.Schema.XmlSchemaValidator.ElementValidationError(XmlQualifiedName name, ValidationState context, ValidationEventHandler eventHandler, Object sender, String sourceUri, Int32 lineNo, Int32 linePos, XmlSchemaSet schemaSet)
   at System.Xml.Schema.XmlSchemaValidator.ValidateElementContext(XmlQualifiedName elementName, Booleanamp; invalidElementInContext)
   at System.Xml.Schema.XmlSchemaValidator.ValidateElement(String localName, String namespaceUri, XmlSchemaInfo schemaInfo, String xsiType, String xsiNil, String xsiSchemaLocation, String xsiNoNamespaceSchemaLocation)
   at System.Xml.XsdValidatingReader.ProcessElementEvent()
   at System.Xml.XsdValidatingReader.ProcessReaderEvent()
   at System.Xml.XsdValidatingReader.Read()
   at ABC.Common.XMLValidators.XmlValidator.ValidateXml(String sXmlToValidate, JKLClass AlphaClass, Int32 hostId, String egmId, Stringamp; outXmlMsg) in C:BMS SrcDevABCABC[Dev]AlphaWebServicesABC.CommonXmlValidator.cs:line 34
  

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

Комментарии:

1. Не могли бы вы поделиться схемой? Определена ли кодировка в проверяемых XML-документах? Может быть, есть какое-то несоответствие в кодовых страницах по умолчанию между разными серверами?

2. Не должно быть никакой разницы, потому что я использовал один и тот же установщик во всех средах, а служба, которую устанавливает установщик, содержит XML-схемы в самом коде / проекте, поэтому они также не будут меняться между серверами. К вашему сведению, отправленное сообщение также не меняется, поскольку я могу просто изменить адрес, на который отправляется сообщение, на одну из рабочих сред, и они принимают его без проблем. Я могу добавить соответствующую часть схемы к моему первоначальному вопросу, но я не уверен, что это поможет!

3. Вы абсолютно уверены, что проверяете один и тот же XML-файл на обоих серверах?

4. @ScottHannen О, конечно, схемы XML встроены в сам проект, а сообщения, отправляемые из другой службы, поступают из той же службы; только одна служба работает на одном сервере в одном месте, один маленький чувак тусуется 🙂

5. Проблема с памятью / диском?