【问题标题】:Can service fabric actors of same type use different versions of same dll?相同类型的服务结构参与者可以使用不同版本的相同 dll 吗?
【发布时间】:2017-09-24 05:58:32
【问题描述】:

使用 Assembly.Load 加载的 dll 有一个返回大型数据集的长时间运行方法,我正在考虑创建 AppDomain 来运行此 dll 的不同版本。但是,我没有使用过 AppDomain,因此我不确定跨 AppDomain 边界的编组/序列化的复杂性和性能。

因此,在探索 AppDomain 之前,我想知道是否可以通过利用 Service Fabric 中的微服务架构来绕过 AppDomain。

谢谢!

【问题讨论】:

  • 您可以创建使用不同版本 DLL 的不同参与者服务。否则,在单个参与者中使用同一 dll 的不同版本会产生严重的副作用(错误、可维护性)。
  • @alltej 问题是这些 dll 是从数据库动态加载的。我希望这些参与者将作为不同的进程运行,因此会有不同的 AppDomain,但我错了。如果 Assembly.Load 方法有重载程序集的重载方法或对应的 Unload 方法,就可以解决问题。

标签: c# dll appdomain azure-service-fabric service-fabric-actor


【解决方案1】:

如果您使用微服务架构,您几乎可以在不同的进程中加载​​ dll,这可能更简单,但会依赖于 ServiceFabric。

使用 AppDomains 的复杂性基本上是如果您在不同的 appdomain 之间传递数据。如果不是这样,我相信 AppDomain 是这种情况的正确方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多