【问题标题】:Service Fabric model partial data lossService Fabric 模型部分数据丢失
【发布时间】:2018-04-01 16:22:03
【问题描述】:

我们有一个有状态的服务,可以将数据保存在 ReliableDictionary 中。我们今天注意到这项服务有少量数据丢失。

我们最近进行了一次代码更新,它更改了存储在字典中的模型之一的命名空间和程序集,但数据协定本身没有改变。

之前:

namespace MainProject.StatefulService.Models
{
   [DataContract]
   public class ColorElement
   {
      [DataMember(Name = "Color")]
      private readonly Color color;

      // Shortened for clarity.
   }
}

之后:

namespace MainProject.Models
{
   [DataContract]
   public class ColorElement
   {
      [DataMember(Name = "Color")]
      private readonly Color color;

      // Shortened for clarity.
   }
}

有没有什么方法可以改变模型的程序集/命名空间会导致可靠字典出现问题?

【问题讨论】:

    标签: azure azure-service-fabric service-fabric-stateful


    【解决方案1】:

    如此处所述:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-upgrade-data-serialization

    更改类名或命名空间会影响您的序列化格式。

    我没有尝试过它,但我假设如果你在 datacontract 属性中指定名称和命名空间,它们将采用序列化格式而不是类和程序集命名空间,这样以后对类的任何更改都不会影响序列化格式 - 但这只是基于我对 WCF 的习惯而不是任何与结构相关的推测。

    【讨论】:

    猜你喜欢
    • 2017-08-06
    • 2016-02-12
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多