Azure キューからのメッセージを処理するように構成されたオンプレミス サービス バスがあります。私が抱えている問題は、ホストがエラー キューを作成できなかったという msmq エラーを報告していることです。msmq を使用すべきではないという事実は別として、エラーにもかかわらず問題なくメッセージを処理するため、重要ではないようです。
My Host は、nservicebus.host.exe プロセスで開始するように構成されたクラス ライブラリとして実行されています。
ここに私のホストコードと設定があります:
internal class EndpointConfig : IConfigureThisEndpoint, AsA_Server, IWantCustomInitialization
{
#region IWantCustomInitialization Members
public void Init()
{
Configure.With()
.DefaultBuilder()
.AzureMessageQueue()
.JsonSerializer()
.UnicastBus()
.IsTransactional(true)
.InMemorySubscriptionStorage();
}
#endregion
}
構成:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
<section name="AzureQueueConfig" type="NServiceBus.Config.AzureQueueConfig, NServiceBus.Azure"/>
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
</configSections>
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
<AzureQueueConfig QueueName="sender" ConnectionString="UseDevelopmentStorage=true" PeekInterval="5000" MaximumWaitTimeWhenIdle="60000" />
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedruntime version="v4.0" />
<requiredruntime version="v4.0.20506" />
</startup>
</configuration>
そして、実際のエラーメッセージは次のとおりです。
2012-04-24 07:57:10,973 [1] ERROR NServiceBus.Utils.MsmqUtilities [(null)] <(nul l)> -キュー error@UseDevelopmentStorage=true を作成できないか、その存在を確認できませんでした。処理は引き続き続行されます。System.Messaging.MessageQueueException (0x80004005): メッセージ キュー サービスを利用できません。System.Messaging.MessageQueue.Create (文字列パス、ブール値のトランザクション) で NServiceBus.Utils.MsmqUtilities.CreateQueue (文字列キュー名、文字列アカウント) で NServiceBus.Utils.MsmqUtilities.CreateQueueIfNecessary (アドレス アドレス、文字列アカウント) で
編集:初期化に .MessageForwardingInCaseOfFault() を追加すると、問題が修正されました。