2013-10-23 91 views
0

我用這個代碼:是否有可能使用NServiceBus和Azure WITHOUT Azure模擬器?

 bus = bus ?? Configure.With() 
      .DefaultBuilder() 
      .AzureDiagnosticsLogger() 
      .UseTransport<AzureStorageQueue>() 
      .PurgeOnStartup(true) 
      .UnicastBus() 
      .CreateBus() 
      .Start(() => Configure.Instance.ForInstallationOn<Windows>().Install()); 

而且仿真器設置: ServiceConfiguration蔚藍文件包含以下設置:

<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與azure隊列,但沒有amulator。我嘗試添加上述設置在web.config中,但它並沒有幫助,並顯示錯誤:

Not running in a hosted service or the Development Fabric. 

回答

1

是的,它是完全有可能的仿真器之外運行。

只需添加在正確的configsection

<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 ......你最好替換成另一個作爲診斷服務的記錄器在角色環境之外並不明顯可用

+0

謝謝!,你幫了我很多! – Sergey

相關問題