首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为RequiresDuplicateDetection主题配置AzureServiceBus

如何为RequiresDuplicateDetection主题配置AzureServiceBus
EN

Stack Overflow用户
提问于 2020-08-26 14:14:22
回答 1查看 89关注 0票数 1

我试图将ASB主题上的RequiresDuplicateDetection属性配置为true,但似乎不尊重主IServiceBusFactoryConfigurator上的设置:

代码语言:javascript
复制
        var busControl = Bus.Factory.CreateUsingAzureServiceBus(cfg =>
        {
            cfg.Host("ASB_ConnectionString");
            cfg.SubscriptionEndpoint<ExtractionRequest>("Test", e =>
            {
                e.LockDuration = TimeSpan.FromMinutes(1);
                e.MaxAutoRenewDuration = TimeSpan.FromMinutes(5);
                e.AutoDeleteOnIdle = TimeSpan.FromHours(1);
            });
            cfg.RequiresDuplicateDetection = true;
        });

在ASB上为此订阅创建的任何主题似乎都不尊重该设置。我找到了一种(可能是hacky)的方法,通过连接到我的消息类型的TopicDescription上的PublishTopology对象来进行实际工作。

代码语言:javascript
复制
        var smth = busControl.Topology.Publish<ExtractionRequest>() as ServiceBusMessagePublishTopology<ExtractionRequest>;
        smth.TopicDescription.RequiresDuplicateDetection = true;

在此解决方案之后正确创建的主题。如果有人能对此有所了解,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-26 14:30:32

您可以在总线配置器中为主题配置发布拓扑:

代码语言:javascript
复制
cfg.Publish<ExtractionRequest>(x => x.RequiresDuplicateDetection = true);

您应该在配置订阅端点之前配置拓扑,在本例中订单问题尤其重要。

在您的示例中,指定cfg.RequiresDuplicateDetection = true;只配置总线接收端点,而不配置订阅端点或任何其他配置的接收端点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63599575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档