1

AzureでNServiceBusをセットアップしようとしています。ローカル開発中はストレージキューを使用しており、クラウドにデプロイするときはAzureServiceBusを使用しています。何らかの理由でエラーが発生した場合、メッセージはエラーキューに移動されません。実際、エラーキューは作成されていません。

Web.configファイルには、次の構成があります。

<MessageForwardingInCaseOfFaultConfig ErrorQueue="myApp-errors"/>

NServiceBusを構成するとき、私は次のように呼び出します。

.MessageForwardingInCaseOfFault()

メッセージが失敗した場合、ログの最後のエラーは常に

Failed raising 'transport message received' event for message with ID=170ad256-b559-417e-8b34-3882045cc19e

これについて何か考えはありますか?メッセージングは​​機能しているようですが、機能しないのはエラー処理だけです。

4

2 に答える 2

3

私の最初の推測は、名前の大文字が許可されていないため、エラーキューを作成できないということです

それがうまくいかない場合は、より徹底的な分析を行う必要がありますが、ログからもう少し情報が必要になります。

お役に立てれば

于 2012-04-07T10:47:01.263 に答える
0

NServiceBus3.3でも同じ問題が発生していました。

これが私にとって問題を解決したものです。Azureキューがトランザクションとしてマークされていない場合、NServiceBusはメッセージをエラーキューに送信することすらしません。メッセージはエーテルに表示されなくなります。

また、第2レベルの再試行はAzureキューでは機能しません。キューはプロセスと同じマシン上にある必要があるという警告が表示されます。

したがって、ここで説明する.DisableSecondLevelRetries()またはapp.config手法のいずれかを使用してSLRを無効にしない場合、NServiceBusはメッセージをエラーキューではなく再試行キューにダンプします。

これを機能させるには:

2番目のレベルの再試行を無効にするAzureキューがトランザクション用に構成されていることを確認します(Azureにない場合でも)

于 2013-02-25T16:34:37.500 に答える