0

OK、私の理解/用語が少し奇妙な場合は許してください-私はまだNSBとMSMQの間の相互作用を把握しています。

今日の初めに、実稼働構成ファイルを使用して、ワークステーションでサブスクライバーWebアプリケーションを誤って起動しました。これは、私のワークステーションが本番パブリッシャーアプリに登録されたことを意味します。パブリッシャーサービスを再起動する以外に、パブリッシャーにワークステーションへのメッセージの公開を停止させる方法を理解できません。これは、本番システムであるため、問題があります。

パブリッシャーホストシステムのキューマネージャーを見ると、[コンピューターの管理]->[サービスとアプリケーション]->[メッセージキュー]->[送信キュー]の下にプライベートキューが表示されます。

DIRECT=OS:DYLAN_PC\private$\DylanApplicationInputQueue

しかし、キューを削除したり、サブスクリプションを削除したりするためのメカニズムがわかりません。ローカルサブスクライバーアプリの構成を置き換えても、ローカルサブスクライバーを今すぐ起動すると、本番環境からのメッセージがキューに表示されます。そのため、便利な作業を行うのは少し難しいです。ドキュメントの関連する部分へのポインタは、最もありがたいです...

4

1 に答える 1

1

これまで自分でNServiceBusを扱ったことはありませんが、ドキュメントを掘り下げてみると、クライアント構成からサブスクリプションを削除する理由は無関係であり、既にサブスクリプションされているため、パブリッシャーはあなたが回った瞬間に何かを送信しているだけです。再びアップ!

設定によっては、2つのオプションが機能するようです。

  1. パブリッシャー設定に戻り、Bus.Unsubscribeの呼び出しを早期に追加します。次に、クライアントを1回実行し、サブスクライブを解除してから、適切なローカル構成の使用に戻ることができます。
  2. 実際に保存されている場所からキューサブスクリプションを削除します。これは、キュー自体とは別だと思います。SQL Server 2008を使用している場合、nservicebusはサブスクリプションレコードを挿入した後に削除しますか?ガイドとして役立つかもしれません(まあ、彼らが起こりたくないことをする、すなわち退会する)。これは、NServiceBusがデータベースにどのような依存関係を持っているか、およびキャッシュが適切であると想定する場合と比較して、再読み取りの頻度によっては、少し厄介になる可能性があります。
于 2012-07-29T13:37:50.623 に答える