問題タブ [nservicebus3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-4 - EndpointConfig.csによって処理されるmvc4でnservicebusの構成を行う必要がありますか?
例では、ほとんどの構成は、AsA_ServerをAsA_Clientに変更することによって開発者によって行われます。
ただし、ASP.NETMVC4アプリではそれができないようです。
Web環境ですべてを手動で構成する必要がありますか?
nservicebus3 - NSB v4 をビルドしようとすると、リモート サーバーに接続できなくなる
MVC4 環境で v3 を動作させることができなかった理由を理解しようとしているときに v4 をビルドしようとした後、v3 を実行している新しいプロジェクトでこのエラーが発生し始めました。John Simons が私に足りないものを指摘してくれたので、v3 で MVC4 をビルドすることができました。ただし、ソリューションの「Asa_Server」クラス ライブラリ部分のみを起動してもエラーが発生するため、この問題は MVC プロジェクトとは無関係です。
v4 ビルド (私は推測しています) は、github リポジトリの開発ブランチです。レイヴンをアップグレードする必要があると言って、ビルドはエラーになりました (私はしませんでした)。それと何か関係あるのかな?と思います。
内部例外:
スタックトレース
structuremap - StructureMapとUnobtrusiveを使用するプロジェクトはサブスクリプションを登録しません
現在の本番NUGETビルド。Windows 8 x64 VS2012
pub/subを作成する方法のサンプルに従いました。デフォルトのビルダーが構造マップに交換され、すべてが正常に機能しました。ravenのキューとデータベースを削除すると、コンソールからclient @machinenameが存在しないと文句が表示されます。
キューとデータベースを再度削除し、構造マップのものをコメントアウトして、デフォルトのビルダーを復元すると、すべてが再び機能します。
デフォルトのビルダーを使用して最初にキューをセットアップしない新しいプロジェクトでも同じ問題が発生します。
イニシャル
StructureMapを使用
ravendb - RavenDBAPIキーを使用したNServiceBus
すべてのアプリケーションサーバーでRavenDBを実行する代わりに、集中化されたRavenDBを使用するようにNServiceBus3.3.5をセットアップしようとしています。NServiceBus.PersistenceをWindowsのユーザー名/パスワードで使用できますが、機能します。ただし、可能であればAPIKeysを使用したいと思います。
作品:
動作しません:
サービスを開始すると、次のエラーが発生します(RavenDBは403を返します)...
ユーザーDomain\RavenDBTestUserとapi-keyは、RavenDBで同じアクセス権を持っています。私はこれとこれを通り抜けましたが、それらは昨年半ばからのもので、バージョン3.2.3についてです。3.3.5でも同じですか、それとも何か間違ったことをしていますか?
PS接続文字列はRavenStudioからコピーされて貼り付けられるため、タイプミスはありません。
nservicebus - NServiceBus - サーバーが空のメッセージ警告をコンソールにスローしています
bus.send("server", command) が mvc4 Web サイトからメッセージ プロセッサに送信されるクライアントがあります。メッセージ プロセッサは、カスタム初期化なしでデフォルトになるようにセットアップされました。
これは、global.asax の Web サイト側での私の構成です。
NServicebus 公開イベント - 空のメッセージを受け取ります を確認しましたが、それは役に立ちませんでした。読み取り専用のプロパティはありません。
nservicebus - System.Net.HttpListenerException: マシン上の既存の登録と競合するため、プレフィックス 'xxxx' をリッスンできませんでした
コンポーネントをデプロイするたびに、次の例外を受け取りました。コンポーネント自体が開始されないこともあれば、サービス コンソールが開始済みと表示されることもありますが、サービスはメッセージを処理しません。エラーは非常に簡単です。まだプレフィックスをリッスンしている別の HttpListener があります。
深い分析を行うとき。
- この問題は、NServiceBus.Master プロファイルを実行している場合にのみ発生します
- この問題は、サービス コンソールから実行サービスを再起動するたびにのみ発生します
- 実行する WorkerThreads の数に関係ありません
NSB コードをさらに深く読むと、オブジェクトの Dispose 中に HttpListener が閉じられていることがわかりました。これに加えて、サービスを停止すると、プロセス自体が強制終了されるため、指定された URL プレフィックスをリッスンするオブジェクトがマシン上に存在しなくなります。しかし、私たちは間違っていました。多くの閉鎖を分析したところ、Service-Console がサービスが停止したと見なした後でも、NServinceBus.Host プロセスがまだ実行されていることがわかりました。サービス コンソールでサービスを停止するたびに、プロセスはマシン上でまだアクティブであり、完全にシャットダウンするのにかなりの時間がかかりました。そのため、再起動を実行すると、現在のサービスのプロセスのインスタンスが複数存在する可能性があります。1 つが開始しようとしていて、別のインスタンスがまだ停止しようとしています。再起動プロセスで上記の例外がスローされることを確認しました。
シャットダウンしていたプロセスのダンプを取得しました。サービス コンソールでステータスが停止と表示されていても、バックグラウンド スレッドがまだプロセス上でアクティブであることがわかりました。破棄中にロック/ObjWait が大量に発生します。停止したサービスがまだ HttpListener オブジェクトを閉じていないことを確認してください。
HttpListener がアクティブでリッスンしていることがわかりました。
質問: プロセスがまだマシン上でアクティブであるにもかかわらず、サービス コンソールがサービスが停止していると報告するのはなぜですか
注:この問題を再現するには、NServiceBus.Master プロファイルを使用してホストを Windows サービスとしてインストールし、サービスの再起動を試行する必要があります。この問題を解決するには、さらに試行が必要になる場合があります。
アップデート:
HttpChannelReceiver.Start() で NSB コードを読むと、新しいスレッドでリスナーが開始されます。
- このリスナー スレッドはフォアグラウンド スレッドです。(他のすべてのワーカー スレッドは BG スレッドです)
- このフォアグラウンド スレッドに停止信号は送信されません
- このスレッドの参照を保持する変数/フィールドはありません。中止はできません。
このリスナー スレッドは、ServiceHost が現在のプロセスのメモリを強制終了したときにのみ再利用されます。ServicHost がそれを収集するまで、このスレッドは現在のプロセスを終了できません。
nservicebus - 多くの販売業者から多くの労働者へ
私たちは、フェデレーテッド システムのメッセージング フレームワークとして NServiceBus を使用するライセンス製品です。
新しい機能でそれを使用する機会を探しています-各サイト/ノードがメッセージを生成し、複数のノード/サイトにあるワーカーに配信するマルチサイト システム (スケールアウト) を構築する方法はありますか? 各ディストリビューターとワーカーは、独自のサイト (同じ LAN) でホストでき、各サイトはいつでもダウンできます。すべてのディストリビューターとワーカーは対称である必要があります。
最初は、古典的な「多くの生産者と多くの競合する消費者」の問題のように見えました。しかし、NServiceBus でそれを達成するための組み込みの方法を見つけることができません。私が見たところ、各ワーカーは健康歌を 1 つのディストリビューターにしか送信できないためです (これについては間違っている可能性があります)。
私が直面したもう 1 つの問題は、ディストリビュータ サブスクリプションを保持する集中型の RavenDB インスタンスを使用することです。RavenDB を独自の「可用性グループ」に含めるには、追加のリソースが必要です。RavenDB インスタンスを同じサイトでホストし、各サイトがローカル DB インスタンスを使用している間にデータをレプリケートする方法はありますか? これにより、ディストリビューターの HA もサブスクリプション DB にバインドされます。
このディスカッションを読む- http://tech.groups.yahoo.com/group/nservicebus/message/18412 NServiceBus には、公開されたデータの HA を維持するためにクラスターが必要なようです。しかし、ディストリビューターは、メッセージがワーカーによって正常に消費および処理されたという確認応答を待つことができず、同じワーカーまたは別のワーカーへの発行を再試行し続けることができないのはなぜですか? このようにして、VM がキュー内のデータでダウンした場合でも、データはその時点で使用可能な別のノードに送信されます。
編集: NServiceBus 公式 Yahoo グループで同じことを尋ねようとしましたが、yahoo グループ内で pythonError を取得し続けます。
前もって感謝します、Rami Prilutsky、dbMotion
asp.net-mvc-4 - MVC フィルターで IBus プロパティを設定する
MVC4 プロジェクトのフィルターからコマンド プロセッサにコマンドを送信しようとしています。
問題:
フィルターに入力する NServiceBus インスタンスを取得できません。
コンポーネント:
- ASP.NET MVC 4
- NServiceBus バージョン 3
- ストラクチャーマップ
属性/フィルター:
IOC コード:
また、コントローラーからバス インスタンスを渡すことで構造マップを完全にバイパスしようとした結果、次の結果が得られました。
この時点で、アトリビュート/フィルターとストラクチャー マップに問題があることは確かですが、それが何であるかはよくわかりません。
警告: 受け入れられた回答は、アクション フィルターで nservicebus を取得する実際の問題を解決しませんが、アクション フィルターで DI を取得する方法に対処します。Nservicebus 固有の質問については、ASP.NET MVC4 NServiceBus Attribute/Filter StructureMapを参照してください。