【问题标题】:Single ConcurrencyMode WCF Service in AzureAzure 中的单一 ConcurrencyMode WCF 服务
【发布时间】:2014-08-13 16:07:12
【问题描述】:

如果我将 WCF ServiceBehavior 设置为 ConcurrencyMode = Single 并将其作为具有 2 个 VM 的辅助角色托管在 Azure 云服务上,那么此服务将是每个 VM 单个还是在所有 VM 上都是单个?

了解这一点很重要,因为我的数据库将 Identity Ints 作为 PK,如果发生并发,这应该是一个严重的问题:据我了解,复制的数据库可能采用相同的增量键,导致表上的主键冲突.

【问题讨论】:

    标签: wcf azure concurrency


    【解决方案1】:

    两者都没有。将 ConcurrencyMode 设置为 Single 仅意味着您的服务是单线程的(这是默认设置)。不过,您仍然可能会得到多个 instances。您正在寻找的是 InstanceContextMode 并将其设置为 Single。这将为您提供每个 VM 的单例行为。但是,如果您有 2 个工作角色/VM 运行此服务,则您将运行 2 个 WCF 服务实例(每个 VM 上一个)。

    如果您的架构只需要一个 WCF 服务实例串行处理消息,那么您需要将您的 Worker Role 计数设置为 1 或更改您的消息传递模式。

    【讨论】:

    • 感谢您的澄清回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多