問題タブ [msmqintegrationbinding]
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.
dns - DNS エイリアス 127.0.0.1 に送信された MSMQ メッセージが、ローカル キューではなく送信キューに送信される
msmqIntegrationBinding を使用して、従来の MSMQ にメッセージを送信しています。実稼働環境と同じ構成ファイルを preprod でも使用できるようにしたいのですが、preprod ではレガシー キューがローカルであるのに対し、実稼働キューは別のサーバー上にあります。
DNSエイリアスでできると思いました。
Preprod サーバーの HOSTS ファイルに DNS エイリアスを 127.0.0.1 に設定しました。
DNSエイリアスを使用してDIRECT OS形式名を使用するようにクライアントのエンドポイントを構成しました
HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\IgnoreOSNameValidation
レジストリ キーを 1 に設定し、さらにキーを追加CRM_SERVER
しましたHKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters\OptionalNames
。
私は少なくとも十数回再起動しました!
クライアントがメッセージをキューに送信するたびに、最終的にローカル キューではなく送信キューになります。正しいマシン名または localhost を使用すると問題なく動作します。
私は何かを逃しましたか?
wcf - msmq 認証により暗号化が遅くなる
暗号化された msmq メッセージを送信すると、認証の速度が低下するようです (2500 メッセージ/秒から 150 メッセージ/秒)。
これは、System.Messaging.MessageQueue と msmqIntegration バインディングを使用する Wcf クライアントの両方に当てはまるようです。
私の要件は暗号化されたトランスポートです。認証なしで実行できます。設定はapp.configから変更できるため、WCFクライアントをお勧めします。
msmqIntegrationBinding が認証なしでトランスポート暗号化を行う方法はありますか?
システムを使用しているときに以下をコメントアウトすると、認証が遅くなることがわかりました。
認証をオンにすると、また送信が遅くなる!
助けてくれてありがとう!
c# - 複数の MSMQ エンドポイントを処理するための汎用 WCF サービスを用意することは可能ですか?
私たちのチームは、( msmqIntegrationBindingを介して) WCF を使用して、複数のリモート MSMQ キューからのメッセージを処理するためのサービスを構築しています。通常消費するリソースの量に基づいて、 ( serviceThrottlingを介して) キューのさまざまなグループを調整する機能が必要です。
私の考えは、単一のサービス タイプで複数のキューからのメッセージを処理し、メッセージのタイプに基づいてメッセージの処理方法を決定することです。残念ながら、MsmqMessage<T>
メッセージの正確なタイプを期待しているため、一般的な使用方法を理解できません。MsmqMessage<object>
type のシリアライザーを見つけようとしていると思われるため、機能しませんobject
。
この作業または代替アプローチを取得する方法についてのアイデアはありますか? デッドレター処理が既に組み込まれているため、WCF を引き続き使用することをお勧めします。
構成例:
契約例:
c# - msmqIntegrationBinding 経由で msmq キューにメッセージを送信する
そのため、メッセージを MSMQ キューに送信するようにクライアント コードを構成しようとしています。ここで説明されている手順に従いました: https://msdn.microsoft.com/en-us/library/ms789008(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharpと私のクライアント コード以下のようになります。
App.config:
IDataRelayService.cs:
IDataRelayServiceChannel.cs:
問題なくコンパイルおよび実行されますが、evet ビューアーを開くと、MSMQ のイベントがログに記録されません。コンピュータ管理ツールを開いてキューを表示すると、キューに 0 メッセージが表示されます。ここで何が間違っていますか?
編集:
MSMQ のイベント トレースを有効にすると、イベント ビューアに次のように表示されます。