我使用此代码:
bus = bus ?? Configure.With()
.DefaultBuilder()
.AzureDiagnosticsLogger()
.UseTransport<AzureStorageQueue>()
.PurgeOnStartup(true)
.UnicastBus()
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>().Install());
模拟器设置为: ServiceConfiguration 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" />
它完美无缺,但它只适用于模拟器。每个人都知道模拟器是如何缓慢的。所以我试图找到一种方法来运行这个NServiceBus与天蓝色队列,但没有amulator。我尝试将上面的设置添加到web.config但它没有帮助并显示错误:
Not running in a hosted service or the Development Fabric.
答案 0 :(得分:1)
是的,完全可以在模拟器之外运行。
只需添加正确的配置部分
即可<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之外,应该这样做......最好用另一个记录器替换它,因为在角色环境之外,诊断服务是不可用的