簡體   English   中英

消息包:不要將System.Boolean(binary:0x0)MessagePackObject轉換為System.Int64

[英]Message Pack : Do not convert System.Boolean (binary:0x0) MessagePackObject to System.Int64

將打包的消息解壓縮到對象時,我們會收到以下錯誤。 在本地開發環境(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)

編輯:有關此問題的更多詳細信息:我們有兩個環境(本地和中央)。 我們正在嘗試通過TCP套接字從本地發送轉換為消息包的對象,然后將其解壓縮回中央對象。

我們嘗試在兩台不同的Windows 7計算機上部署本地應用程序和Central Tcp偵聽器,並且在Central上對數據進行擴展沒有問題。 但是,當我們嘗試在Windows7機器上部署Local並在Windows 2008服務器上部署Central(這是實際的生產方案)時,就會遇到此問題。 在這兩種情況下,我都通過測試應用程序使用相同的數據打包和解壓縮同一對象。 我們仍然找不到問題的根本原因。

我們錯過了什么嗎?

您顯然正在嘗試將布爾值轉換為int64,這是無效的轉換。 也許您沒有在開發環境中觀察到它,因為要解壓縮到對象的消息與在生產環境中解壓縮的消息不同。

您需要確保在Dev和Live中輸入相同,然后從那里繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM