ArgumentOutOfRangeException en protobuf-net

tengo el siguiente código

<ProtoContract()> _
Public Class CtMsg

Public Sub New()
End Sub

 <ProtoMember(1)> _
 Public Property MessageType As MessageType = MessageType.mtMessage

End Class

  <ProtoContract()> _
Public Enum MessageType
    mtLogin = 4
    mtAuthenticated = 1
    mtHello = 2
    mtLogout = 3
    mtMessage = 0
End Enum

La clase CtMsg se serializa bien en el cliente pero en el servidor da el siguiente error

los datos enviados desde el cliente coinciden exactamente byte por byte en el servidor, pero durante la deserialización da el siguiente error

¿Qué puede estar causando el error?

System.ArgumentOutOfRangeException occurred
Message=Specified argument was out of the range of valid values.
Parameter name: tag
Source=protobuf-net
ParamName=tag
StackTrace:
at ProtoBuf.ProtoMemberAttribute..ctor(Int32 tag, Boolean forced) in 
 K:\softwares\protobuf-net r278\src\protobuf-net\ProtoMemberAttribute.cs:line 45
 InnerException: 

Probé la v2, obtuve exactamente el mismo error, pero cuando cambio mi proyecto y las referencias relacionadas para depurar, el mismo código funciona con cualquier problema

pero para la versión de lanzamiento da el error, todavía tengo que encontrar por qué no funciona en la versión de lanzamiento y publicaré mis hallazgos

Muchas Gracias

preguntado el 28 de agosto de 11 a las 00:08

Acabo de regresar de unos días fuera. Veré esto más tarde.

No puedo reproducir esto; ¿El cliente y el servidor utilizan contratos coincidentes? es decir, eres tu seguro se ve igual que el anterior en ambos? También puede valer la pena ver si simplemente con "v2" se soluciona el problema. -

bien, intentaré con v2, en el código anterior, la enumeración MessageType tiene 13 enumeraciones y la clase CtMsg también tiene 13 propiedades, puede ser que ese sea el problema, los contratos están en dll separados y este mismo dll se usa entre el cliente y servidor -

el "mismo dll" generalmente resuelve todos los problemas (es la configuración más simple y robusta), así que estoy realmente sorprendido por el problema. Simplemente: nunca había visto esto antes, así que sin más detalles es muy difícil de reproducir. ¿Tiene más stacktrace que pueda ver? ¿O algo más que pueda usar para reproducirlo? -

¿Tiene v2 dll solo para .net 2 ya que todo el proyecto es .net 2 y no puede actualizarlo a v3 y superior?

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.