Почему мой вызов WebService не выполняется только для одного пользователя? - PullRequest
0 голосов
/ 30 сентября 2010

У меня есть простой метод WebService, который возвращает результаты базы данных в виде DataSet.

Этот метод не работает для одного пользователя в компании, но работает для всех остальных Вот сбой:

    CRASH! GetCustomer - 
ExtractDomesticCommercialState: Exception:InvalidOperationException 
Message:There is an error in XML document (1, 877). 
Source:     System.Xml TargetSite: Deserialize StackTrace:    
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)     
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)     
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)     
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)     
at Cwc.Common.basis2_ws.Basis2WebService.GetRetailChargeGroupByInstId(String instId)     
at Cwc.Common.Basis2ServiceLayer.GetRetailChargeGroupByInstId(String instId)     
at Cwc.WaterWorks.Console.frmMain.GetCustomer(String customerKey, Boolean afterCreate)

Exception:FormatException Message:Input string was not in a correct format. 
Source:     mscorlib TargetSite: StringToNumber 
StackTrace:    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)     
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)     
at System.String.System.IConvertible.ToInt32(IFormatProvider provider)     
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)     
at System.Data.XSDSchema.HandleElementColumn(XmlSchemaElement elem, DataTable table, Boolean isBase)     
at System.Data.XSDSchema.HandleParticle(XmlSchemaParticle pt, DataTable table, ArrayList tableChildren, Boolean isBase)     
at System.Data.XSDSchema.HandleComplexType(XmlSchemaComplexType ct, DataTable table, ArrayList tableChildren, Boolean isNillable)     
at System.Data.XSDSchema.InstantiateTable(XmlSchemaElement node, XmlSchemaComplexType typeNode, Boolean isRef)     
at System.Data.XSDSchema.HandleTable(XmlSchemaElement node)     
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.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)     
at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable)     
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderBasis2WebService.Read18_Item()     
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer25.Deserialize(XmlSerializationReader reader)     
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 

Клиент - это приложение .Net WinForms. Я проверил, что метод в Web-сервисе правильно генерирует XML. Просто кажется, что десериализация не удалась

Может быть, потому, что она работает.

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

Exception:FormatException Message:Input string was not in a correct format

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

0 голосов
/ 30 сентября 2010

посмотрите на середину вашей трассировки стека ...

at Cwc.WaterWorks.Console.frmMain.GetCustomer(String customerKey, Boolean afterCreate)

Exception:FormatException Message:Input string was not in a correct format. 
Source:     mscorlib TargetSite: StringToNumber 
StackTrace:    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)     
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 

Похоже, ошибка разбора от String до Int .... Я предлагаю вам попробовать и исследовать эту область.

...