2011-05-31 23 views
6

Web hizmetimden atılan aşağıdaki işlenmemiş özel durumu anladım - bu benim kodumla ilgili bir şey değildir ve yalnızca aralıklı olarak gerçekleşir sunucuyu eşzamansız olarak birçok kez çağırmak. Geri döndüğüm kod yanıtı nesnesini de dahil ettim, bu geri gelen tek şey budur (bu nedenle genel yanıt bir String listesidir). Bunu daha önce hiç kimse bir web servisinin bunu neden attığını biliyor mu?Web Service çağrı sonuçları bir System.Xml.XmlException: '.', Onaltılık değeri 0x00

Bütün Yığın İzleme:

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) 

Basit Tepki nesnesi (yalancı kod):

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 

Fiddler koştu, ama bu sadece sıradan sonucun dışarı ben görmedim, ama Bunu yaşadığım soruna neden olacağını düşünmüyor musunuz? Kullanıcıların daha sonra bu kayıtlar için tüm yol çıkan başka bir uygulama ve sıfırdan bir veritabanı alanına/yapıştırma değerleri kopyalayarak zaman kodlamak veya 0 kaldırmadık bundan önce hata kodunu bu gördük

<?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: &#x0; 
    at Npgsql.NpgsqlState.&lt;ProcessBackendResponses_Ver_3&gt;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

Metin formundaki cevabınız var mı? – abatishchev

+0

Buna neden olabilecek bir şey göremedim ... daha önce bu konuyla karşılaşan biri var mı? –

+1

Eğer bu sizin kodunuz değilse, belki de kodunuzun çağırdığı bir şey yüzünden olabilir. –

cevap

1

xml ayrıştırıcısı.

+0

Kaynak veriler bir dosyadan. Bu dosyaları veritabanına almak için, dosyanın her satırını bir nesneye ayırırız ve bu nesnelerin bir koleksiyonu daha sonra db'ye yönlendirildiği web servisine gönderilir. Bu nedenle, herhangi bir kopyalama/yapıştırma yok ve serileştirme işlemi zaten serileştirme işleminden geçmişti. –

+0

NULL'unuzun aynı şekilde yerleştirildiğini düşünmüyordum, yalnızca veritabanında verileri kontrol etmelisiniz, bunun için ilk önce nerede saklandığını veya verilerin nereden geldiğini kontrol edin. Bu, bir unicode karakterinin tam olarak doğru olmayan kodlama olmadan unicode olmayan verilere eklenmesi durumunda da olabilir. (Unicode'un iki baytından biri genellikle 0'dır) – MartyTPS

+0

Kontrol ettim, ancak buna neden olan bir şey göremedim. Ancak fikir için +1. –

İlgili konular