現在、nServiceBus でホストされているアプリケーションで何かを起動して実行するのに苦労しています。サードパーティがメッセージを投稿している azure ServiceBus キューがあり、アプリケーション (現時点ではローカルでホストされています) にこれらのメッセージを受信させたいと考えています。
エンドポイントを構成する方法についての回答をグーグルで検索しましたが、有効な構成で運がありませんでした。Azureストレージキューに接続する方法の例を見つけることができますが、サービスバスキューには接続しないので、これを行ったことがありますか? (他の理由で Azure Servicebus キューが必要です)
私が持っている設定は以下の通りです
public void Init()
{
Configure.With()
.DefaultBuilder()
.XmlSerializer()
.UnicastBus()
.AzureServiceBusMessageQueue()
.IsTransactional(true)
.MessageForwardingInCaseOfFault()
.UseInMemoryTimeoutPersister()
.InMemorySubscriptionStorage();
}
. Message=エンドポイント開始時の例外、エラーがログに記録されました。理由: 入力キュー [mytimeoutmanager@sb://[ * ].servicebus.windows.net/] は、この Source=NServiceBus.Host と同じマシン上にある必要があります
.
<configuration>
<configSections>
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
<section name="AzureServiceBusQueueConfig" type="NServiceBus.Config.AzureServiceBusQueueConfig, NServiceBus.Azure" />
<section name="AzureTimeoutPersisterConfig" type="NServiceBus.Timeout.Hosting.Azure.AzureTimeoutPersisterConfig, NServiceBus.Timeout.Hosting.Azure" />
</configSections>
<AzureServiceBusQueueConfig IssuerName="owner" QueueName="testqueue" IssuerKey="[KEY]" ServiceNamespace="[NS]" />
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<!-- Use the following line to explicitly set the Timeout manager address -->
<UnicastBusConfig TimeoutManagerAddress="MyTimeoutManager" />
<!-- Use the following line to explicity set the Timeout persisters connectionstring -->
<AzureTimeoutPersisterConfig ConnectionString="UseDevelopmentStorage=true" />
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedruntime version="v4.0" />
<requiredruntime version="v4.0.20506" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>