Хорошо, я действительно в тупике с этим. У меня есть это приложение Compact Framework, которое вызывает ваш стандартный веб-сервис .NET. Некоторое время это работало довольно хорошо, но недавно нас попросили заставить это программное обеспечение работать на другом устройстве Windows CE.
Похоже, что это новое устройство было произведено в Корее и имеет странную конфигурацию по умолчанию. Региональные настройки на панели управления показывают, что языковой стандарт установлен на английский (США), а в настройках «Язык пользовательского интерфейса» и «Язык ввода» также установлено это значение.
Хотя есть некоторые странные проблемы. В проводнике Windows обычные символы «\», которые используются для разделения папок, отображаются как перечеркнутая буква W. На небольшой панели ввода есть некоторые символы, которые также неверны, некоторые выглядят явно корейскими.
Проблема со всем этим заключается в том, что по какой-то причине я получаю исключение PlatformNotSupportedException при вызове метода веб-службы, который возвращает DataSet. В отладчике я вижу, что для CurrentUICulture правильно установлено значение «en-US», но почему-то это не мешает программе запускать эту проблему.
Я думаю, что корейский язык, установленный на устройстве, конфликтует с культурной конфигурацией веб-службы, но я не знаю подробностей и не знаю, как это исправить. Любая помощь будет принята с благодарностью. Спасибо.
Это полная трассировка стека:
System.PlatformNotSupportedException - at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride)
at System.Globalization.CultureInfo..ctor(String name)
at System.Data.XSDSchema.HandleDataSet(XmlSchemaElement node, Boolean isNewDataSet)
at System.Data.XSDSchema.LoadSchema(XmlSchemaSet schemaSet, DataSet ds)
at System.Data.DataSet.ReadXSDSchema(XmlReader reader, Boolean denyResolving)
at System.Data.DataSet.ReadXml(XmlReader reader, XmlReadMode mode, Boolean denyResolving)
at System.Data.DataSet.ReadXmlSerializable(XmlReader reader)
at System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader reader)
at System.Xml.Serialization.XmlSerializationReader.DeserializeSerializableElement(LogicalType deserializeAs, Accessor accessor, Fixup fixup, Object fixupTarget, String identifier, Boolean emptyValue, Boolean nullValue)
at System.Xml.Serialization.XmlSerializationReader.deserializeElement(Accessor accessor, Fixup fixup, Object fixupTarget)
at System.Xml.Serialization.XmlSerializationReader.DeserializeElementMember(MemberValueCollection members, Object fixupTarget, Hashtable internalState, Boolean& firstElement)
at System.Xml.Serialization.XmlSerializationReader.deserializeMembers(MemberValueCollection members, Object fixupTarget)
at System.Xml.Serialization.XmlSerializationReader.DeserializeComplexElement(LogicalType deserializeAs, Accessor accessor, Fixup fixup, Object fixupTarget, String identifier, Boolean emptyValue, Boolean nullValue)
at System.Xml.Serialization.XmlSerializationReader.deserializeElement(Accessor accessor, Fixup fixup, Object fixupTarget)
at System.Xml.Serialization.XmlSerializationReader.DeserializeElementMember(MemberValueCollection members, Object fixupTarget, Hashtable internalState, Boolean& firstElement)
at System.Xml.Serialization.XmlSerializationReader.deserializeMembers(MemberValueCollection members, Object fixupTarget)
at System.Web.Services.Protocols.SoapMessageParser.execute()
at System.Web.Services.Protocols.SoapMessageSerializer.Deserialize(XmlReader reader, SoapHttpClientProtocol client, LogicalSoapMethod soapMethod, Boolean soap12)
at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String methodName, Object[] parameters, WebClientAsyncResult asyncResult)