2

NServicebus を使用するオンプレミスの Web アプリがあり、(完全なクラウド ベースへのより大きな移行パスの一部として) キューを Azure に移行したいと考えています。POC を作成しようとしていますが、うまくいきません。


私は次の構成を持っています:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
     <section name="AzureQueueConfig" type="NServiceBus.Config.AzureQueueConfig, NServiceBus.Azure"/>
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/>
    <section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core"/>
</configSections>

<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<AzureQueueConfig QueueName="timeoutmanager" 
                ConnectionString="DefaultEndpointsProtocol=https;AccountName=<My storage account>;AccountKey=<My primary access key>"/>

<UnicastBusConfig TimeoutManagerAddress="timeoutmanager">
<MessageEndpointMappings>
  <add Messages="TechFu.Services.Bus.Messages.Publishing.CMS.SitePagePublishMessage, TechFu.Services.Bus.Messages" Endpoint="sitepagepublish" />
</MessageEndpointMappings>


私のアプリケーションでは、バスを次のように構成しています。

Configure.WithWeb()
.StructureMapBuilder()
.InMemorySubscriptionStorage()
       .AzureMessageQueue()
        .JsonSerializer()
.UnicastBus()
        .LoadMessageHandlers()
              .IsTransactional(true)
.CreateBus()
       .Start();


キューに投稿しようとすると、次のメッセージが表示されます。

The destination queue 'sitepagepublish@ DefaultEndpointsProtocol=https;AccountName=&lt;My storage account&gt;;AccountKey=&lt;My primary access key&gt;’ could not be found. You may have misconfigured the destination for this kind of message (TechFu.Services.Bus.Messages.Publishing.CMS.SitePagePublishMessage) in the MessageEndpointMappings of the UnicastBusConfig section in your configuration file. It may also be the case that the given queue just hasn't been created yet, or has been deleted.



Web で見つけたいくつかの異なるサンプルを試してみましたが、Azure の知識が不足しているように感じます。この質問から構成の大部分を引き出しました: nservicebus on-premise host using azure Queue 不足している魔法はありますか?

4

4 に答える 4

2

両方のホスト間でサブスクリプション メッセージを交換できないため、これは機能しないと思います。

異なるサイト間でメッセージを配信する NServiceBus のゲートウェイの概念をより適切に使用します。

于 2012-05-31T10:57:31.230 に答える
2

宛先キューは存在しますか? NServiceBus はデフォルトでソース キューのみを作成するため、宛先が存在しない場合は作成されません。

于 2012-05-02T15:53:01.663 に答える
0

構成ファイルからMsmqTransportConfigへの参照を削除してみてください。(Azure キューを使用する場合、実際には MSMQ トランスポートを置き換えています)

于 2012-04-29T20:21:30.053 に答える
0

私は NServicebus に精通していません。しかし、Windows Azure には Service Bus が組み込まれており、キューと自然に統合できます。チュートリアルについては、 http://msdn.microsoft.com/en-us/WAZPlatformTrainingCourse_ServiceBusMessagingを参照してください。

よろしくお願いします、

明徐。

于 2012-04-30T06:40:06.283 に答える