1

ペアリングされた名前空間の受信側でメッセージをバックログ キューからプライマリ キューに移動する方法。送信者では機能するようですが、受信者の設定 EnableSyphon = true では機能しないようです。バックログ キューに常にメッセージが表示され、増加しています。私が見つけたすべての情報はこの Code Block ですが、Service Bus 2.4 Messaging.Factory には Open Method がありません。

factory = MessagingFactory.Create(SB_Primary_NS_Address);
factory.PairNamespace(new SendAvailabilityPairedNamespaceOptions
{
    EnableSyphon = true,
    TransferQueueCount = 10,
    MessagingFactory = paired-NS_factory,
    NamespaceManager = paired-NS_manager
});
factory.Open();
4

1 に答える 1

1

名前空間を最近のバージョンとペアリングする方法が変更されました。代わりに、PairedNamespaceOptions インスタンスを渡して、プライマリ メッセージング ファクトリから非同期関数 (PairNamespaceAsync) を呼び出します。返される Task は実際には Promise タイプであるため、Task で Start() を呼び出さないことに注意してください。Task は既に開始されているため、単に Waiting() を呼び出します。

また、Secondary Namespace と MessagingFactory に管理レベルのセキュリティがあることを確認する必要があります。MessagingFactory は単に発行するだけでは不十分であり、メッセージをプライマリ キュー/トピックに送り返すことはありません。

// assume members _messagingFactory, _secondaryNamespaceManager, _secondaryManagementMessagingFactory have been assigned.

try
{
    var pairedNamespaceOptions = new SendAvailabilityPairedNamespaceOptions(_secondaryNamespaceManager,
            _secondaryManagementMessagingFactory,
            1,
            TimeSpan.FromSeconds(30),
            true);
    _messagingFactory.PairNamespaceAsync(pairedNamespaceOptions).Wait();
}
catch (Exception ex)
{
    // logging or handle
}

いくつかの役立つリンク。

于 2015-05-08T04:08:23.290 に答える