問題タブ [nservicebus5]
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.
nservicebus - NServiceBus 5 で EndPointName を取得する
アプリケーションを NServiceBus 4 から 5 にアップグレード中です。
実装するクラスがIWantToRunWhenBusStartsAndStops
あり、Start()
メソッドで EndpointName を出力します-から取得しますNServiceBus.Configure.EndpointName
NServiceBus 5 では非推奨であり、正しく実行したいと考えています。EndpointName を取得するにはどうすればよいですか?
c# - NServiceBus Test.Initialize() 指定されたキーが存在しませんでした
更新はGoogleグループをより詳細に読むだけで、明らかにアプリの構成の問題です。試した後、投稿を更新します。
NServiceBus の単体テストを試みるときに、この問題を知っている人がいるかどうか疑問に思っていました。
以下に 2 つの初期化メソッドがあることを認識してください。ただし、これは私がやろうとしていることを説明するためのものです。リクエストに基づくスタック トレース。
(NServiceBus.LocalAddress) が辞書にありませんでした。(NServiceBus.LocalAddress) が辞書にありませんでした。
私が信じているスタック トレースの他の部分は、InMemoryPersistence について不平を言っている赤いニシンです。ただし、この問題について話している Google グループもあり、同じ問題を経験したため、コーディングの間違いではなく、NServiceBus の問題だと思います。
Google グループ リンクhttps://groups.google.com/forum/m/#!topic/particularsoftware/424_6KCv6oI
これらの投稿を見たことを言及する必要があります。
https://github.com/Particular/NServiceBus.Testing/issues/20 https://github.com/Particular/NServiceBus.Testing/commit/f761c5391b03b05d967f2e368248c72522051d59
ravendb - NServiceBus の RavenDb ライセンス
アプリケーションで NServiceBus を使用していますが、NServiceBus 5 RavenDb はデフォルトの永続性ではなく、NServiceBus と一緒にインストールされていません。そこで、RavenDB-Build-2952 をダウンロードし、セットアップ時に開発オプションを使用してインストールしました。
私のプロジェクト (まだ NServiceBus 4 を使用しています) を実行しようとすると、RavenDb のライセンスが Windows 認証に対して有効ではないというエラーが表示されました。私の NServiceBus コードには、RavenDb の永続性に関する特別な構成はありません。
RaveDb のインストールで NServiceBus ライセンスが使用されていることを確認するにはどうすればよいですか?
nservicebus - Nservicebusはweb.configでデフォルトのロガーを無効にします
Nservicebus v5 の DefaultFactory LogManager を使用しています。これには満足していますが、web.config で無効にできることを望んでいました。
ヘルプ ドキュメントにあるように、web.config 設定を使用します。
しきい値を致命的なものに設定しないことをお勧めします。「None」または Disabled="true" を望んでいました
また、ディレクトリ パスを web.config に設定できますか?
更新: エラーを無視する必要があるのはなぜですか?
要するに、サーバーに対する書き込み権限が実際にはありません。
長い間、これは 100% 真実ではありません。私たちのシステムはマイクロサービスに向かっています。これの問題は、分散ロギングがトレース/視覚化の悪夢であることです. そのため、フロー トレース、例外、限定トレースを集中型システムに移行しました。
プログラミング エントリ ポイント (別名メッセージ ハンドラー、Web API エンドポイントなど) は、ほとんどの場合、各ハンドラーの try catch ログ スローにラップされます。これにより、すべてのプログラミング エラーがカバーされます。これは通常とそれほど違いはありません。必要なすべての素敵な赤く点滅するリアルタイム アラームの集中ログ ロケーション セット。
これにより、キューの欠落、アセンブリ バインドの不良、構成ファイルの誤り、IoC ワイヤリング (ハンドラー コードの外部) などのランタイム スタイルのものなど、構成タイプのエラーのみが残ります。エラークエストの集中ログと監視により、サービスが壊れていることを検出するのはかなり簡単です。壊れている場合は、ログをオンにして再起動し、問題のある問題を試して修正します. 保証された配信は、それが再び立ち上がると、他のすべてを処理します:D 150 MB のログ ファイルが 10 の異なるサーバーに分散する時代は終わりました。
DefaultFactory のシンプルさは素晴らしく、別の nuget パッケージと関連する構成は必要ありませんでした。
これは正しい方法ですか?多くの人はノーと主張するでしょう。もっとうまくできたでしょうか?はい、共通のロガー インターフェースを実装して NServiceBus に渡すことはできますが、まだ静かではなく、勝利は重要ではありません。
補足: 私たちがログに記録する方法について本当に素晴らしい点の 1 つは、バックオフィス ツールで、greylog で相関 ID を使用するのと同様に、各「注文」のフローを簡単に表示できることです。
c# - nservicebus 重大エラー例外コード: 0x80131623
NServicebus.Host.exe の起動時に次のエラーが発生します。
ランタイムで致命的なエラーが発生しました。エラーのアドレスは、スレッド 0x2094 の 0x9124e4c7 でした。エラー コードは 0x80131623 です。このエラーは、CLR のバグ、またはユーザー コードの安全でない部分または検証不可能な部分のバグである可能性があります。このバグの一般的な原因には、COM 相互運用機能または PInvoke のユーザー マーシャリング エラーが含まれ、スタックが破損する可能性があります。
これは、Visual Studio またはコマンド プロンプトから直接プロジェクトを開始したときに発生し、クラッシュの原因をトラブルシューティングするのに苦労しています。提案をいただければ幸いです。
nservicebus - SqlServerTransport で NServiceBus ServiceControl をインストールできません
SqlServerTransport で NServiceBus ServiceControl をインストールしようとしています。
以下を使用して、メッセージング アプリケーションの概念実証をコーディングしました。
- NServiceBus バージョン="5.0.0"
- NServiceBus.SqlServer バージョン="2.1.1"
ServicePulse がどのように機能するかを確認したいと思います。これには ServiceControl が必要です。
http://docs.particular.net/servicecontrol/multi-transport-supportの説明を読みました 。
NServiceBus V4 を対象とするトランスポート DLL のみを使用する必要があります。
これは、ServiceControl が NServiceBus V5 で動作しないということですか?
NServiceBus.SqlServer version="2.1.1" で ServiceControl をインストールしようとしました
私は以下を実行しました
しかし、私はエラーが発生します
選択したトランスポートの IConfigureTransport 実装が見つかりませんでした
SQL トランスポートの V5 バージョンで ServiceControl を正常に実行した人はいますか?
c# - V4 から V5 への NServiceBus の更新、Configure.Instance
V4 から V5 に更新しています。V4 では configure のインスタンスを使用しましたが、現在は使用できません。これは私のコードです
NServiceBus で configure のインスタンスを取得する方法について何か知っている人はいますか?
nservicebus - DTCの関与なしでNServiceBus 5?
私はドキュメントを読んでいますが、バージョン 5 のドキュメントの上部に、DTC を使用せずに信頼性が得られると記載されているため、次の内容で混乱します。
これらの機能は、Outbox パターンと Deduplication パターンの両方を使用して実装されています。メッセージがデキューされると、以前にそれを処理したかどうかを確認します。その場合、そのメッセージの送信ボックスにメッセージを配信しますが、メッセージ処理ロジックを再度呼び出すことはありません。メッセージが以前に処理されていない場合は、通常のハンドラー ロジックを呼び出して、ユーザー自身のデータベースの変更と同じトランザクションで、すべての送信メッセージを永続的なストレージに格納します。最後に、すべての発信メッセージを送信し、重複排除ストレージを更新します。
おそらく私の理解不足によるものだと思いますが、NServiceBusがメッセージハンドラーとは別の独自の接続とトランザクションを開いているという事実はそうではありません(例:保存のためにリポジトリを呼び出す)データベース接続はトランザクションにエスカレートされますDTCを使ってフル2PC?
ドキュメントは次のとおりです。
http://docs.particular.net/nservicebus/outbox/
ありがとう!
nservicebus - NServiceBus SqlTransport - 送信するメッセージ タイプを解決できません
更新 問題が見つかりました。ICommand から継承していなかったので、規則を追加しましたが、次の例外が発生しています。
宛先キュー「償還」が見つかりませんでした。構成ファイルの UnicastBusConfig セクションの MessageEndpointMappings で、この種のメッセージ (Reimbursement.Messages.Commands.RequestForReimbursementCommand、Reimbursement.Messages、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null) の宛先を誤って構成した可能性があります。指定されたキューがまだ作成されていないか、削除されている場合もあります。
SqlTransport を使用して会社の NServiceBus を評価していますが、構成の問題が発生しています。
送信者の app.config は次のとおりです。
コマンドを送信しようとすると、次の例外が発生します。
メッセージ タイプ Reimbursement.Messages.Commands.RequestForReimbursementCommand の送信先が見つかりませんでした。このエンドポイントの構成のセクションで、この特定のメッセージ タイプまたはそのアセンブリのエントリを確認してください。
送信者は Reimbursement.Messages アセンブリを参照しているため、これを解決できない理由がわかりません。
どんな助けでも素晴らしいでしょう!