1

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() を追加すると、問題が修正されました。

4

2 に答える 2

1

AsA_Server は msmq を想定しているようです。プロセスを手動で構成する必要があると思います

于 2012-04-24T18:09:19.357 に答える
1

.MessageForwardingInCaseOfFault() を init メソッドに追加すると、問題が解決しました。まだ根本的なバグがあるように感じますが、機能しています。

以下に次のハードル (エラーを正しく処理しない) が記載されていると思いますが、失敗したメッセージを強制的に検証する必要があります。

説明: Azure の NServiceBus エラー キュー

于 2012-04-24T21:50:37.390 に答える