0

パックされたメッセージをオブジェクトにアンパックしているときに、次のエラーが発生します。このエラーは、ローカル開発環境 (Windows 7) では通知されませんが、サーバー環境で発生します。(サーバー2008)。

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Runtime.Serialization.SerializationException: The unpacked value is not expected type. Do not convert System.Boolean (binary:0x0) MessagePackObject to System.Int64. ---> System.InvalidOperationException: Do not convert System.Boolean (binary:0x0) MessagePackObject to System.Int64.
at MsgPack.MessagePackObject.ThrowInvalidTypeAsT
at MsgPack.MessagePackObject.AsInt64()
at MsgPack.Serialization.DefaultSerializers.System_DateTimeMessagePackSerializer.UnpackFromCore(Unpacker unpacker)
--- End of inner exception stack trace ---
at MsgPack.Serialization.DefaultSerializers.System_DateTimeMessagePackSerializer.UnpackFromCore(Unpacker unpacker)
at MsgPack.Serialization.DefaultSerializers.NullableMessagePackSerializer1.UnpackFromCore(Unpacker unpacker) at MsgPack.Serialization.MessagePackSerializer1.UnpackFrom(Unpacker unpacker)

編集: 問題の詳細: 2 つの環境 (ローカルと中央) があります。TCP ソケットを介してローカルからメッセージ パックに変換されたオブジェクトを送信し、中央のオブジェクトにアンパックしようとしています。

ローカル アプリケーションとセントラル Tcp リスナーの両方を 2 つの異なる Windows 7 マシンに展開しようとしましたが、セントラルでのデータのアップパックに問題はありません。しかし、Local を Windows7 マシンに展開し、Central を Windows 2008 サーバーに展開しようとすると (実際の運用シナリオになります)、この問題が発生します。どちらのシナリオでも、テスト アプリケーションを使用して、同じオブジェクトを同じデータでパックおよびアンパックしています。問題の根本的な原因をまだ見つけることができません。

何か足りないものはありますか?

4

1 に答える 1

0

明らかにブール値を int64 に変換しようとしていますが、これは無効な変換です。オブジェクトにアンパックするメッセージは、実稼働環境でアンパックするメッセージとは異なるため、おそらく開発環境では観察されません。

入力が Dev と Live で同じであることを確認してから、そこから先に進む必要があります。

于 2014-12-09T13:11:21.430 に答える