是否可以在没有 Azure 模拟器的情况下使用 NServiceBus 和 Azure U
本文关键字:Azure 情况下 NServiceBus 模拟器 是否 | 更新日期: 2023-09-27 18:36:29
我使用以下代码:
bus = bus ?? Configure.With()
.DefaultBuilder()
.AzureDiagnosticsLogger()
.UseTransport<AzureStorageQueue>()
.PurgeOnStartup(true)
.UnicastBus()
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>().Install());
模拟器设置包括:服务配置 azure 文件包含以下设置:
<Setting name="AzureQueueConfig.ConnectionString" value="UseDevelopmentStorage=true" />
<Setting name="AzureQueueConfig.QueueName" value="webinputqueue" />
<Setting name="MessageForwardingInCaseOfFaultConfig.ErrorQueue" value="errorqueue" />
<Setting name="TransportConfig.MaximumConcurrencyLevel" value="1" />
<Setting name="TransportConfig.MaxRetries" value="5" />
它运行完美,但它仅适用于模拟器。每个人都知道模拟器有多慢。所以我正在尝试找到一种方法来使用 azure 队列运行此 NServiceBus,但没有模拟器。我尝试将上述设置添加到 web.config 中,但它没有帮助并显示错误:
Not running in a hosted service or the Development Fabric.
是的,完全可以在模拟器之外运行。
只需添加正确的配置部分
<configSections>
<section name="AzureQueueConfig" type="NServiceBus.Config.AzureQueueConfig, NServiceBus.Azure" />
<section name="TransportConfig" type="NServiceBus.Config.TransportConfig, NServiceBus.Core" />
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
<configSections>
并将您的配置设置放在相应的配置节点中
<AzureQueueConfig ConnectionString="UseDevelopmentStorage=true" QueueName="webinputqueue" />
<MessageForwardingInCaseOfFaultConfig ErrorQueue="errorqueue" />
<TransportConfig MaximumConcurrencyLevel="1" MaxRetries="5" />
这应该可以做到,除了AzureDiagnosticsLogger...最好将其替换为另一个记录器,因为诊断服务在角色环境之外显然不可用