0

我使用这段代码:

        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。我试图将上面的设置添加到 web.config 但它没有帮助并显示错误:

Not running in a hosted service or the Development Fabric.
4

1 回答 1

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 ...您最好用另一个记录器替换它,因为诊断服务在角色环境之外显然不可用

于 2013-10-24T05:24:27.153 回答