Error al Transferir un Archivo via Webservice

20/11/2006 - 15:48 por pdtoloza | Informe spam
Buenas, les agradeceria mucho si alguien puede orientarme con el
problema que tengo:
Tengo un web service y una web cliente en ASP.net 1.1 C#.
Transfiero archivos con el web service hacia el cliente, los archivos
los transfiero como byte[] y la serializacion es a string Base 64.
Pero recibo el siguiente error "'', hexadecimal value 0x06, is an
invalid character.", el valor en hexa cambia, no es siempre el mismo.
El web service funciona correctamente el problema es cuando el cliente
quiere deserializar el mensaje SOAP.

el stack, en el cliente es :

[XmlException: '', hexadecimal value 0x06, is an invalid character.
Line 198446, position 194.]
System.Xml.XmlScanner.ScanHexEntity()
System.Xml.XmlTextReader.ParseBeginTagExpandCharEntities() +1036
System.Xml.XmlTextReader.Read() +216
System.Xml.XmlReader.ReadElementString()

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read12_Infografia(Boolean
isNullable, Boolean checkType)

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read2_Object(Boolean
isNullable, Boolean checkType)

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read30_BuscarMediaResponse()

[InvalidOperationException: There is an error in XML document (198445,
135).]
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, String encodingStyle, XmlDeserializationEvents events)
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, XmlDeserializationEvents events)
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader)

System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean
asyncCall)
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)


desde ya muchisimas gracias!!

Pablo
 

Leer las respuestas

#1 pdtoloza
21/11/2006 - 14:22 | Informe spam
Hola por suerte pude resolverlo, el problema era q algunos archivos
tenias caracteres ascii de bajo rango, es decir 0x00, 0x01, etc, que no
estan permitidos, aparentemente para enviarlos por la red ( de hecho
creo q el ascii 0x06 es la señal de ACK), asi q lo unico q hice fue
revisar si contenian esos caracteres antes de mandarlos y sacarselos,
tarda bastante con archivos grandes, pero anda...

un saludo

ha escrito:

Buenas, les agradeceria mucho si alguien puede orientarme con el
problema que tengo:
Tengo un web service y una web cliente en ASP.net 1.1 C#.
Transfiero archivos con el web service hacia el cliente, los archivos
los transfiero como byte[] y la serializacion es a string Base 64.
Pero recibo el siguiente error "'', hexadecimal value 0x06, is an
invalid character.", el valor en hexa cambia, no es siempre el mismo.
El web service funciona correctamente el problema es cuando el cliente
quiere deserializar el mensaje SOAP.

el stack, en el cliente es :

[XmlException: '', hexadecimal value 0x06, is an invalid character.
Line 198446, position 194.]
System.Xml.XmlScanner.ScanHexEntity()
System.Xml.XmlTextReader.ParseBeginTagExpandCharEntities() +1036
System.Xml.XmlTextReader.Read() +216
System.Xml.XmlReader.ReadElementString()

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read12_Infografia(Boolean
isNullable, Boolean checkType)

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read2_Object(Boolean
isNullable, Boolean checkType)

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read30_BuscarMediaResponse()

[InvalidOperationException: There is an error in XML document (198445,
135).]
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, String encodingStyle, XmlDeserializationEvents events)
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader, XmlDeserializationEvents events)
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader)

System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean
asyncCall)
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters)


desde ya muchisimas gracias!!

Pablo

Preguntas similares