Bus.SendToQueues を使用するとエラーが発生します。質問の最後に詳細なエラーがあります。
ストレージ アカウントとキーを使用して設定された Azure キューがあり、Bus.SendToSites を使用して、msmq を使用して Azure サイトにメッセージを送信するオンプレミス サービスバス ハンドラーを使用しようとしています。
http://support.nservicebus.com/customer/portal/articles/859548-the-gateway-and-multi-site-distributionに従って、ゲートウェイを起動しようとしています。この構成を使用しています。
App.config: (サイトを正しく設定していますか?)
<section name="GatewayConfig" type="NServiceBus.Config.GatewayConfig, NServiceBus.Core" />
<GatewayConfig>
<Sites>
<Site Key="Azure" Address="http://<!--STORAGE ACCOUNT NAME-->.queue.core.windows.net/<!--STORAGE ACCOUNT KEY-->" ChannelType="Http"/>
</Sites>
</GatewayConfig>
ハンドラ:
Bus.SendToSites(new[] { "Azure" }, message);
実行時に、次の結果が得られます。
エラー: アドレスにメッセージを送信できませんでした: このエンドポイントによって送信されたメッセージの返信アドレスとして使用されるディストリビューターのデータ アドレス..gateway@HFORTE
内部例外: {"フォーマット名が無効です。"}
スタックトレース: System.Messaging.MessageQueue.MQCacheableInfo.get_WriteHandle() で System.Messaging.MessageQueue.StaleSafeSendMessage (MQPROPS プロパティ、ITransaction トランザクション) で System.Messaging.MessageQueue.StaleSafeSendMessage (MQPROPS プロパティ、IntPtr トランザクション) で System.Messaging.QueueMessage .SendInternal(Object obj, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType) at System.Messaging.MessageQueue.Send(Object obj, MessageQueueTransactionType transactionType) at NServiceBus.Transports.Msmq.MsmqMessageSender.Send(TransportMessage message, Address address) in :line 0
トランスポートが MSMQ であることがわかりました。問題は、MSMQ と Azure が異なるトランスポート プロトコルであることです。そうであれば、これはどのように改善されますか?