問題タブ [msmq]

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.

0 投票する
1 に答える
1346 参照

wcf - 複数のエンドポイントと同時処理を備えた msmq

MSMQ バインディングをすべて使用して、条件付きで一方向サービスを複数のエンドポイントにルーティングする WCF ロード バランサー/ルーターを構築しました。また、ルーターからのすべてのエンドポイントを使用してサービス呼び出しを受け入れるホストも作成しました。すべてのエンドポイントが同じコントラクトを指定します。

各キュー (エンドポイント) を同時に処理する必要がありますが、各サービス呼び出しは順次処理する必要があります。

InstanceContextMode = InstanceContextMode.Single および ConcurrencyMode = ConcurrencyMode.Single を使用してみましたが、これにより、すべてのエンドポイントを処理する単一のインスタンスしか得られません。InstanceContextMode = PerCall は、必要な順序を保証しません。
必要なのは、同時に実行されるエンドポイントごとに 1 つのサービス インスタンスです。

また、 ServiceBehavior を使用してさまざまな順列を試しました

MSMQ バインディングを使用して WCF でこれを達成するにはどうすればよいですか?

0 投票する
3 に答える
3731 参照

msmq - 宛先キューが存在しない場合、MSMQ はメッセージを破棄しますか?

私は奇妙な状況に遭遇しました:

メッセージは ServerA から ServerB に送信されます。それは ServerA の送信キューに入り、次に ServerB のキューに送信されます。

サーバー B がクラッシュしました。再フォーマットする必要がありました。立ち上げたときに、MSMQ サービスをインストールするのを忘れていました。

メッセージを送信するプログラムがリソース不足の例外をスローするまで、メッセージは ServerA の送信キューに蓄積され始めます。

エラーに気付き、MSMQ サービスを ServerB にインストールしました。ServerA はすぐに発信キューを空にし始めます。

ServerB でメッセージを処理するプログラムを開始したとき、接続できませんでした。ServerB にキューを作成するのを忘れていたことがわかりました。しかし、この時までには手遅れでした。ServerA のキューにあった 900K のメッセージはすべて ServerB に送信されました。私が知る限り、ServerB は宛先キューで構成されていなかったため、それらを破棄しました。ServerB を完全にセットアップするまで、ServerA のキューを停止することが正しい解決策であることは既にわかっています。

問題は、これが本当に MSMQ に期待すべき真の動作なのかということです。より防御的な設計アプローチは、ServerB がメッセージを受け取って捨てるのではなく、拒否することだったと思います。

0 投票する
6 に答える
69753 参照

c# - WCF サービスが障害状態にならないようにするにはどうすればよいですか?

障害状態に入ってはならない WCF サービスがあります。例外が発生した場合は、ログに記録し、サービスを中断することなく続行する必要があります。サービスには一方向の操作コントラクトがあり、MSMQ からメッセージを読み取ります。

私の問題は2つあります。

  1. サービスが例外/障害を飲み込んでいるように見えるため、デバッグできません。例外をログに記録または処理できるように、サービスに例外を公開させるにはどうすればよいですか?
  2. この例外が飲み込まれた後、サービスはフォルト状態に入ります。サービスが障害状態にならないようにするにはどうすればよいですか?
0 投票する
8 に答える
5061 参照

.net - ASP.NET - 新しいアプリケーションに最適なキュー システム

私の組織は、asp.net アプリケーションである新しいシステムを実装する準備をしています。アプリケーションには、Web サイトによって開始されるオフライン作業の大きなキューがあります。このキューは、理想的には XML メッセージで、さまざまな種類のアクティビティを保持します。メール通知、スケジュールされたタスクなどを考えてみてください。

以前は、組織は MSMQ を使用してこのタスクを実行していた可能性があります。ただし、彼らは MSMQ を古い学校と見なしているため (私も部分的に彼らに同意します)、「最適な」ソリューションを決定するためにアーキテクチャのレビューを行う予定です。

考えられる選択肢はいくつかあり

ます。 1. MSMQ の最新バージョンでの新しい実装に固執します。これは理想的ではありませんが、既知の製品です。
2. Windows Workflow Foundation を使用します。これは、この種の目的でこれを使用している他の数人の開発者から聞いたことがあります。
3. カスタム データベース ソリューションを開発します。

明らかな解決策がありませんか?これは理想的には Microsoft 製品ですが、実際には Microsoft 中心のショップで動作する必要があります。

私が懸念しているのは、次の点です
。 1. 実装と保守の容易さ
2. しばらくの間使用できるソリューション
3. 中サイズの XML データを含む大量の行を処理できること
4. 迅速な更新を備えた絶対的に信頼性の高いキュー システム (複数のユーティリティ プロセスがキューからレコードを取得して処理する可能性があります)。

0 投票する
2 に答える
4564 参照

wcf - Windows サービスを使用して WCF 経由で MSMQ メッセージを処理する

Windows サービスを使用してメッセージを選択するソリューションがあります。

Windows サービスは 2 分ごとに起動し、MSMQ メッセージを取得して Web サービスに渡します。

  1. MSMQ キューからメッセージを自動的に取得する WCF サービスを作成できますか?
  2. 自動呼び出しをサポートしている場合、WCF サービスを使用して Windows サービスを回避できますか?
0 投票する
1 に答える
1620 参照

wcf - ワークグループ モードで新しいメッセージをプライベート キューに投稿するときに、WCF サービスが通知されない

ワークグループ モードの Windows Server 2003 で、WCF (C#) を使用してプライベート MSMQ キューからメッセージを送受信しています。

クライアント WCF/サービス WCF と MSMQ は同じコンピューター上にあります。

完全に機能するプライベート キューにメッセージを送信するクライアントが 1 つあります。同じプライベート キューからメッセージを受信するサービスが 1 つありますが、このサービスは MSMQ によって呼び出されることはないようです。(エラーは発生しません)

メッセージはキューに積み上げられますが、何も引き出されません。別のコンピュータ (ワークグループ モードではなくドメイン モード) では、メッセージは完全に送受信されました。

MSMQ がサービスを呼び出さない原因となるワークグループ モードの何が問題になっていますか?

その後、常に同じコンピューター上で C# テストを作成しますが、今回は MessageQueue を作成し、この方法で ReceiveCompleted イベントをサブスクライブします。

そして、新しいメッセージがあると、MSMQ キューからイベントを受け取ります。

サービス構成 (WFC 構成) または名前空間の予約に問題があると思います。

0 投票する
4 に答える
35898 参照

msmq - プライベートリモートMSMQキューへの接続

次のパスを使用して、リモートのプライベートMSMQキューに接続しようとしています。

次のエラーが発生します。

私は明らかに何か間違ったことをしています。ただし、これはローカルキューを使用して機能します。

Spring.Netのメッセージングを使用しています。これが私の設定です

0 投票する
11 に答える
6775 参照

sql - MSMQ v データベース テーブル

既存のプロセスは、ユーザー入力に応じて、テーブル内の予約レコードのステータス フィールドを変更します。

特定のステータスのレコードに対して非同期で実行する、別のプロセスを作成する必要があります。テーブル レコードを読み取り、いくつかの操作 (サード パーティの Web サービスへの呼び出しを含む) を実行し、レコードのステータス フィールドを更新して、処理が完了したことを示します (または、エラー カウントでエラーが発生したことを示します)。

この操作は、キューに非常に似ています。この状況で、SQL テーブルではなく MSMQ を使用する利点とトレードオフは何ですか? また、どちらか一方を選択する必要があるのはなぜですか?

テーブル内のレコードを追加および更新しているのは、当社のソフトウェアです。

これは、非同期処理を実行する新しい作業 (Windows サービス) です。これは「常に稼働」している必要があります。

0 投票する
5 に答える
509 参照

wcf - WCF セキュリティ設定の構成

Windows アプリケーションでホストされている WCF サービスがあります。サービスは netMsmqBinding を使用します。クライアントとホストは異なるドメインにあります。私の質問は、セキュリティ設定をどのように構成するのですか?

転送されるデータは機密であるため、クライアントとサービスのホスト間の通信を保護したいと考えています。唯一の問題は、それを行う方法がわからないことです... (証明書を使用したくない) 助けていただければ幸いです!


James Schek : セキュリティなしで実行すると (MSMQ がどこにあっても) 完璧に動作します。私の場合、MSMQ はサーバーでホストされており、サーバーがダウンしている場合、クライアントのメッセージは送信キューに残り、MSMQ が起動して再び実行されると、すべてのメッセージが送信されます。これが MSMQ の能力であり、期待される動作です。 (これが、MSMQ 経由で送信されるすべてのメッセージが OneWay でなければならない理由です。これは、サーバーまたはクライアントがいつオンラインであるかがわからないためです。メッセージを配信したいだけです)。

私たちの組織の管理者の 1 人が、(証明書の代わりに) 他の方法があるかどうかを私に尋ねました。

ドメイン モードではなく、ワーク グループ モードです。そのため、ドメインを使用できません...そしてADはまったくありません。

0 投票する
2 に答える
504 参照

.net - リモートでトリガーされたジョブを実行するときのなりすまし

私の (.NET) アプリでは、ユーザーはデータベースの値を微調整できます。次に、Crystal または Reporting Services の編集に基づいてレポートを生成する必要がありますが、それは重要ではありません。重要なのは、生成がローカル ボックスで確実に行われるわけではないということです。たとえば、Crystal Reports がない可能性があります (または何でも)マシンにインストールされています。

そのため、ネットワーク マシン (レポートを生成できる) にメッセージ キューを設定すると、アプリはそのキューにメッセージを投稿し、必要なすべての情報を含むオブジェクトを送信します。ここまでは順調ですね。

ルールとトリガーを使用してターゲット キューを構成したので、新しいメッセージが送信されると、そのリモート マシン上のコンソール アプリが自動的にメッセージの処理を試みます。

問題は、すべて正常に動作するにもかかわらず、トリガーされたコンソール アプリがローカル コンピューター アカウントとして実行されることです。アプリは、統合認証を使用するデータベースと対話する必要があります。

コンソール アプリは、実際のユーザーとして実行すると完全に機能しますが、メッセージ キューによってトリガーされた場合は機能しません。

問題は、ルール、トリガー、またはコンソール アプリを特定のユーザーとして実行するように構成できますか? 見えると思われるすべての設定オプションを試しましたが、役に立ちませんでした。

おそらく、アプリのコード自体 (app.config) 内でユーザーになりすますことができますか? ASP.NETコードでは実行可能ですが、WinForms コードでは実行できません。

編集:なりすましの提案はうまく機能します... Process.Start()関数から「アクセスが拒否されました」というエラーが発生するまで、startwithcreateprocess()を呼び出します。

私が偽装しているユーザーには、ローカルボックスでプロセスを実行する権限があります(したがって、問題なくネイティブに実行できます)。