Problema al deserializar

15/12/2005 - 11:29 por Juan Miguel | Informe spam
Hola de nuevo a todos!!!
Hace unos dias escribi en este foro preguntando por como instalar un
servicio web en un servidor remoto, ya que lo habia desarrolado localmente.
Bien pues ya mas o menos lo tengo solucionado.

Ahora el problema con el que me enfrento es el siguiente: tengo un servicio
web que lo unico que hace es registrar los errores que se le envian como
parametro. Tengo declarado en el servicio web una clase Errores que es la que
serializo en un fichero. Y por otra parte tengo una clase cliente que es la
que envia los errores al servicio web, asi mediante una sola linea cualquier
programa que use la clase cliente puede enviar los errores al servicio web y
este los almacena serializandolos.

Pues bien, luego tengo un programa de administracion que es el que abre los
ficheros para deserializar los errores recibidos.
Pues bien mientras tenia el servicio web en el equipo local podia
perfectamente deserializar los ficheros y ver su contenido. Pero desde que lo
he puesto en el servidor remoto ubicado en la DMZ me da el siguiente error:

System.Runtime.Serialization.SerializationException: El tipo no está
resuelto para el miembro Errores.ObjetoError, Errores,
Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null.
at
System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String
objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String
name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at
System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
at
System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at
System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler
handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage
methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream
serializationStream, HeaderHandler handler, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
RutaFichero) in
I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170

Esto seria en el caso de serializacion binaria.

Pero si utilizo serializacion SOAP el error que me da es el siguiente:
System.Runtime.Serialization.SerializationException: Error de análisis, no
hay ningún tipo asociado con la clave Xml a1 Errores.ObjetoError Errores,
Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null
at
System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
at
System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
at
System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
at
System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
at
System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
serializationStream, HeaderHandler handler)
at
System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
serializationStream)
at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
RutaFichero) in
I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170

Al deserializar creo un objeto de la clase definida en el servicio web, pero
es aqui donde me estan dando los errores.

¿Alguien me podria orientar un poco con este tema?

Muchas gracias.

Juan Miguel

Preguntas similare

Leer las respuestas

#1 Juan Miguel
15/12/2005 - 13:47 | Informe spam
Acabo de probar con serializacion XML y no me da ningun error al
deserializar, pero lo que ocurre es que no me recupera la informacion y mi
objeto se queda sin datos cuando deberia tener los datos del fichero
deserializado.

:(

Algo debo de estar haciendo mal supongo.

Agradeceria cualquier ayuda.

Gracias.

Juan Miguel


"Juan Miguel" escribió:

Hola de nuevo a todos!!!
Hace unos dias escribi en este foro preguntando por como instalar un
servicio web en un servidor remoto, ya que lo habia desarrolado localmente.
Bien pues ya mas o menos lo tengo solucionado.

Ahora el problema con el que me enfrento es el siguiente: tengo un servicio
web que lo unico que hace es registrar los errores que se le envian como
parametro. Tengo declarado en el servicio web una clase Errores que es la que
serializo en un fichero. Y por otra parte tengo una clase cliente que es la
que envia los errores al servicio web, asi mediante una sola linea cualquier
programa que use la clase cliente puede enviar los errores al servicio web y
este los almacena serializandolos.

Pues bien, luego tengo un programa de administracion que es el que abre los
ficheros para deserializar los errores recibidos.
Pues bien mientras tenia el servicio web en el equipo local podia
perfectamente deserializar los ficheros y ver su contenido. Pero desde que lo
he puesto en el servidor remoto ubicado en la DMZ me da el siguiente error:

System.Runtime.Serialization.SerializationException: El tipo no está
resuelto para el miembro Errores.ObjetoError, Errores,
Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null.
at
System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String
objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String
name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at
System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
at
System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at
System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler
handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage
methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream
serializationStream, HeaderHandler handler, Boolean fCheck,
IMethodCallMessage methodCallMessage)
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
at
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
RutaFichero) in
I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170

Esto seria en el caso de serializacion binaria.

Pero si utilizo serializacion SOAP el error que me da es el siguiente:
System.Runtime.Serialization.SerializationException: Error de análisis, no
hay ningún tipo asociado con la clave Xml a1 Errores.ObjetoError Errores,
Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null
at
System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
at
System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
at
System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
at
System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
at
System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
serializationStream, HeaderHandler handler)
at
System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
serializationStream)
at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
RutaFichero) in
I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170

Al deserializar creo un objeto de la clase definida en el servicio web, pero
es aqui donde me estan dando los errores.

¿Alguien me podria orientar un poco con este tema?

Muchas gracias.

Juan Miguel
Respuesta Responder a este mensaje
#2 Juan Miguel
15/12/2005 - 16:09 | Informe spam
¿Es posible que no me cargue los datos del xml al estar el objeto que
serializo en nombres de espacio distintos?
Me explico, el objeto que serializo en el servicio web es del tipo
Errores.ObjetoErrores, pero al deserializar es del tipo
ServicioWeb.ObjetoErrores.

"Juan Miguel" escribió:

Acabo de probar con serializacion XML y no me da ningun error al
deserializar, pero lo que ocurre es que no me recupera la informacion y mi
objeto se queda sin datos cuando deberia tener los datos del fichero
deserializado.

:(

Algo debo de estar haciendo mal supongo.

Agradeceria cualquier ayuda.

Gracias.

Juan Miguel


"Juan Miguel" escribió:

> Hola de nuevo a todos!!!
> Hace unos dias escribi en este foro preguntando por como instalar un
> servicio web en un servidor remoto, ya que lo habia desarrolado localmente.
> Bien pues ya mas o menos lo tengo solucionado.
>
> Ahora el problema con el que me enfrento es el siguiente: tengo un servicio
> web que lo unico que hace es registrar los errores que se le envian como
> parametro. Tengo declarado en el servicio web una clase Errores que es la que
> serializo en un fichero. Y por otra parte tengo una clase cliente que es la
> que envia los errores al servicio web, asi mediante una sola linea cualquier
> programa que use la clase cliente puede enviar los errores al servicio web y
> este los almacena serializandolos.
>
> Pues bien, luego tengo un programa de administracion que es el que abre los
> ficheros para deserializar los errores recibidos.
> Pues bien mientras tenia el servicio web en el equipo local podia
> perfectamente deserializar los ficheros y ver su contenido. Pero desde que lo
> he puesto en el servidor remoto ubicado en la DMZ me da el siguiente error:
>
> System.Runtime.Serialization.SerializationException: El tipo no está
> resuelto para el miembro Errores.ObjetoError, Errores,
> Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null.
> at
> System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
> at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String
> objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
> typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
> objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
> at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String
> name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
> typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
> objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
> at
> System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
> at
> System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
> at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
> at
> System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler
> handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage
> methodCallMessage)
> at
> System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream
> serializationStream, HeaderHandler handler, Boolean fCheck,
> IMethodCallMessage methodCallMessage)
> at
> System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
> at
> System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
> at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
> RutaFichero) in
> I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170
>
> Esto seria en el caso de serializacion binaria.
>
> Pero si utilizo serializacion SOAP el error que me da es el siguiente:
> System.Runtime.Serialization.SerializationException: Error de análisis, no
> hay ningún tipo asociado con la clave Xml a1 Errores.ObjetoError Errores,
> Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null
> at
> System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
> at
> System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
> at
> System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
> at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
> at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
> at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
> at
> System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
> at
> System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
> serializationStream, HeaderHandler handler)
> at
> System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
> serializationStream)
> at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
> RutaFichero) in
> I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170
>
> Al deserializar creo un objeto de la clase definida en el servicio web, pero
> es aqui donde me estan dando los errores.
>
> ¿Alguien me podria orientar un poco con este tema?
>
> Muchas gracias.
>
> Juan Miguel
Respuesta Responder a este mensaje
#3 Juan Miguel
15/12/2005 - 16:35 | Informe spam
Problema resuelto!!!
He sacado la clase que serializo a un ensamblado DLL aparte, y tanto el
servicio web como el administrador que deserializa el fichero hacen uso de
una referencia a ese ensamblado. Asi em ambos sitios el objeto a
serializar/deserializar estaban en el mismo espacio de nombres.

Personar las molestias.

Un saludo.

Juan Miguel

"Juan Miguel" escribió:

¿Es posible que no me cargue los datos del xml al estar el objeto que
serializo en nombres de espacio distintos?
Me explico, el objeto que serializo en el servicio web es del tipo
Errores.ObjetoErrores, pero al deserializar es del tipo
ServicioWeb.ObjetoErrores.

"Juan Miguel" escribió:

> Acabo de probar con serializacion XML y no me da ningun error al
> deserializar, pero lo que ocurre es que no me recupera la informacion y mi
> objeto se queda sin datos cuando deberia tener los datos del fichero
> deserializado.
>
> :(
>
> Algo debo de estar haciendo mal supongo.
>
> Agradeceria cualquier ayuda.
>
> Gracias.
>
> Juan Miguel
>
>
> "Juan Miguel" escribió:
>
> > Hola de nuevo a todos!!!
> > Hace unos dias escribi en este foro preguntando por como instalar un
> > servicio web en un servidor remoto, ya que lo habia desarrolado localmente.
> > Bien pues ya mas o menos lo tengo solucionado.
> >
> > Ahora el problema con el que me enfrento es el siguiente: tengo un servicio
> > web que lo unico que hace es registrar los errores que se le envian como
> > parametro. Tengo declarado en el servicio web una clase Errores que es la que
> > serializo en un fichero. Y por otra parte tengo una clase cliente que es la
> > que envia los errores al servicio web, asi mediante una sola linea cualquier
> > programa que use la clase cliente puede enviar los errores al servicio web y
> > este los almacena serializandolos.
> >
> > Pues bien, luego tengo un programa de administracion que es el que abre los
> > ficheros para deserializar los errores recibidos.
> > Pues bien mientras tenia el servicio web en el equipo local podia
> > perfectamente deserializar los ficheros y ver su contenido. Pero desde que lo
> > he puesto en el servidor remoto ubicado en la DMZ me da el siguiente error:
> >
> > System.Runtime.Serialization.SerializationException: El tipo no está
> > resuelto para el miembro Errores.ObjetoError, Errores,
> > Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null.
> > at
> > System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
> > at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String
> > objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
> > typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
> > objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
> > at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String
> > name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[]
> > typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32
> > objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
> > at
> > System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
> > at
> > System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
> > at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
> > at
> > System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler
> > handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage
> > methodCallMessage)
> > at
> > System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream
> > serializationStream, HeaderHandler handler, Boolean fCheck,
> > IMethodCallMessage methodCallMessage)
> > at
> > System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
> > at
> > System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
> > at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
> > RutaFichero) in
> > I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170
> >
> > Esto seria en el caso de serializacion binaria.
> >
> > Pero si utilizo serializacion SOAP el error que me da es el siguiente:
> > System.Runtime.Serialization.SerializationException: Error de análisis, no
> > hay ningún tipo asociado con la clave Xml a1 Errores.ObjetoError Errores,
> > Version=1.0.2174.32752, Culture=neutral, PublicKeyToken=null
> > at
> > System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
> > at
> > System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
> > at
> > System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
> > at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
> > at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
> > at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
> > at
> > System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
> > at
> > System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
> > serializationStream, HeaderHandler handler)
> > at
> > System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream
> > serializationStream)
> > at AdministracionProgramas.RegistroErrores.MostrarContenidoError(String
> > RutaFichero) in
> > I:\Programas.Net\AdministracionProgramas\RegistroErrores.vb:line 170
> >
> > Al deserializar creo un objeto de la clase definida en el servicio web, pero
> > es aqui donde me estan dando los errores.
> >
> > ¿Alguien me podria orientar un poco con este tema?
> >
> > Muchas gracias.
> >
> > Juan Miguel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida