0

我有一个使用 ServiceStack.Redis 来存储对象的服务(用 JSON 序列化)。每个 HTTP 请求都会更新一个键 - 流程很简单:获取键的值,将其反序列化为列表,添加/删除项目,将修改后的列表写回 Redis。
最近,我们注意到一个问题——一些密钥会损坏(所以它们不能被反序列化)。我不知道为什么。
异常说Type definitions should start with a '{', expecting seralized type X, got string starting with: Y at ServiceStack.Text.Common.DeserializeTypeRefJson.StringToType(Type type, String strType, EmptyCtorDelegate ctorFn, Dictionary'2 typeAccessorMap
我阅读了其他答案-其中大多数暗示您从另一台计算机获取 JSON 数据,或者您无法控制它的构建方式。但是我愿意。
我们只使用少数类型 - 大多数属性是简单的 int,其他是 DateTime。
我只有一个理论——涉及多线程。但在这种情况下,它应该是“最后写入获胜”并且不应该发生损坏。其他人看到这种行为吗?
我们将 ServiceStack 3.9.71(3.x 系列的最新版本)与 Redis 2.8.9 一起使用。.NET 4.5 Web 应用程序托管在 Windows 上,Redis 服务器位于 Linux 上。

4

0 回答 0