如何解决Web服务调用导致System.Xml.XmlException:\'\',十六进制值为0x00
| 我从Web服务中抛出以下未处理的异常-这与我的代码无关,并且仅在多次异步调用服务器时才间歇性地发生。我已经包含了我返回的代码响应对象,这是唯一返回的内容(因此,通用响应是字符串列表)。 有没有人遇到过这个问题,然后才知道为什么Web服务可能会抛出这个错误? 整个堆栈跟踪:System.Xml.XmlException: \'.\',hexadecimal value 0x00,is an invalid character. Line 4,position -88.
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.ParseNumericCharRefInline(Int32 startPos,Boolean expand,BufferBuilder internalSubsetBuilder,Int32& charCount,EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos,Int32& endPos,Int32& outOrChars)
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.ReadElementString()
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPartsLibraryService.Read29_GenericResponseOfListOfString(Boolean isNullable,Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPartsLibraryService.Read34_UploadPartsResponse()
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer5.Deserialize(XmlSerializationReader reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,String encodingStyle,XmlDeserializationEvents events)
简单响应对象(伪代码):
Public Class GenericResponse(Of T)
Public Enum StateOptions
Private _result As T
Private _state As StateOptions
Private _msg As String
Public Property Result() As T
Public Property State() As StateOptions
Public Property Message() As String
End Class
我跑了提琴手,但这是我从未见过的唯一异常结果,但是我不认为这会导致我遇到的问题吗?
<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body><UploadPartsResponse xmlns=\"http://autovhc.co.uk/\"><UploadPartsResult><Result><string>--------------------------------------------------
01/06/2011 14:38:33
Upsert Exception
Backend sent unrecognized response type: �
at Npgsql.NpgsqlState.<ProcessBackendResponses_Ver_3>d__a.MoveNext() in C:\\projects\\Npgsql2\\src\\Npgsql\\NpgsqlState.cs:line 966
at Npgsql.ForwardsOnlyDataReader.GetNextResponseObject() in C:\\projects\\Npgsql2\\src\\Npgsql\\NpgsqlDataReader.cs:line 1163
at Npgsql.ForwardsOnlyDataReader.GetNextRowDescription() in C:\\projects\\Npgsql2\\src\\Npgsql\\NpgsqlDataReader.cs:line 1181
at Npgsql.ForwardsOnlyDataReader.NextResult() in C:\\projects\\Npgsql2\\src\\Npgsql\\NpgsqlDataReader.cs:line 1367
at Npgsql.NpgsqlCommand.ExecuteNonQuery() in C:\\projects\\Npgsql2\\src\\Npgsql\\NpgsqlCommand.cs:line 523
at VHC.Connections.DataAccess2.DataAccess.sqlNonQuery(NpgsqlCommand sqlCmd,Boolean closeConnection) in E:\\svn_repository\\vhc.server.solution\\vhc.connections\\Tags\\v_3_0_0_5\\New\\ConnectionProxys\\DataAccess.vb:line 119
at VHC.Connections.DataAccess2.DataAccess.sqlNonQuery(NpgsqlCommand sqlCmd) in E:\\svn_repository\\vhc.server.solution\\vhc.connections\\Tags\\v_3_0_0_5\\New\\ConnectionProxys\\DataAccess.vb:line 97
at PartsLibServerSideClasses.DAO.PLM_PsaFormat_DAO.Update(PartLibraryPartTO part,Int32 entityref,NpgsqlConnection conn) in C:\\Applications\\PartsImporter\\Import_Library-Stable\\PartsLibServerSideClasses\\DAO\\PSA\\PLM_PsaFormat_DAO.vb:line 61
at PartsLibServerSideClasses.DAO.PLM_PsaFormat_DAO.Upsert(PartLibraryPartTO part,Int32 entityref) in C:\\Applications\\PartsImporter\\Import_Library-Stable\\PartsLibServerSideClasses\\DAO\\PSA\\PLM_PsaFormat_DAO.vb:line 21
at PartsLibServerSideClasses.Parsing.PartsLibraryManager.SubmitPartToLibrary(PartLibraryPartWorkSegmentContainer partContainer) in C:\\Applications\\PartsImporter\\Import_Library-Stable\\PartsLibServerSideClasses\\BOL\\PartsLibraryManager.vb:line 70
</string></Result><State>Fail</State></UploadPartsResult></UploadPartsResponse></soap:Body></soap:Envelope>
解决方法
我以前在错误代码中看到过这一点,该错误代码在用户将值从另一个应用程序复制/粘贴到数据库字段中时没有进行编码或删除0,然后对于这些记录,直到XML解析器一直为0。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。