問題タブ [msmq-wcf]
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.
c# - MSMQ と Unity.Wcf - サービスがキューを消費しない
Unity コンテナーを使用して WCF 経由で MSMQ を実装できた人はいますか?
サーバーが起動し、プライベート キューが作成され、mex が公開されます。私のクライアントは、サービス参照を解決し、接続して、メッセージをキューに正常に書き込むことができます。ただし、サーバーはメッセージを取得せず、未使用のままキューに残します。
エラーの原因を絞り込むために、標準を使用してMSDN チュートリアルServiceHost
から MSMQ サンプル アプリケーションを実装しました。
メッセージは正常に取得され、消費されます。
UnityServiceHost
しかし、 byを使用するとすぐにUnity.Wcf
:
サービスはメッセージを消費していないため、メッセージはキューに積み上げられます。
Unityの公式ドキュメント(無料の電子書籍としてのみ入手可能) を調べて、追加情報を探してみましたが、成功しませんでした。
UnityServiceHost
MSMQ を処理できないか、 UnityContainer
.
誰かがこれを機能させることができましたか? 提案やヒントはありますか?
wcf - キューが認証済みに設定されているときに msmq メッセージを「受信」する方法は?
私は WCF 4.0 を使用しており、サービスは IIS (WAS) でホストされており、net.msmq アドレスを使用しています。メソッドを介して単にintを送信することから始めています。私のweb.configには次のものがあります。注 - 他の制限により、AD にフックできません。AD がなくても、セキュリティのためにローカル アカウントを使用できるはずです。
Msmq End2End イベントをログに記録しましたが、eventID 1 と 5 は記録されていますが、EventID 2 ("Message Received") のイベントは記録されていません。
キューのプロパティで「Authenicated」のチェックを外すと、イベントがログに記録されます - しかし、セキュリティがないため、これは望ましくありません :) だから、私は皆さんに投稿しています。
ローカル プライベート キューが設定されており、ジャーナリングが有効になっています。これらのどちらにもメッセージはありません - 私も新鮮な結果を得るために f5 を確認しました。ネットワーク サービスの読み取り/ピークを許可するだけでなく、フル コントロールを持つ iis アプリ プール ユーザーにセキュリティを設定しました。また、一時的に全員を完全に制御しようとしましたが、それも役に立ちませんでした。非トランザクション キューも試しましたが、どちらも役に立ちませんでした。
メッセージはジャーナルに表示されず、エラーもログに記録されませんが、正しい場所を探していない可能性があります。それに関する指針も役に立ちます。
c# - MSMQ - 現在処理中のメッセージを照会できますか?
MSMQ エンドポイントで WCF を使用しており、この質問で説明されている動作が見られます。基本的に、サービスは一度に 1 つのメッセージを処理するように調整されていますが、2 つのメッセージがキューから取得され、1 つがメモリに保持されているように見えますが、もう 1 つがメモリに保持されているようです。処理中です。
これは、何が起こっているかを監視する上で問題を引き起こします。どのジョブがキューにあり、どのジョブが処理されているかを示す監視ページがありますが、この動作により、ジョブがキューから取り出されたときに効果的に消える期間がありますが、まだ処理が開始されていません。MessageQueue.GetAllMessages()
現在キューにあるメッセージのリストを取得するために使用しています。
私は MSMQ にはあまり詳しくありませんが、メッセージがキューから取り出されると、他のプロセスが削除しないように非表示としてマークされると思います。これらのメッセージを照会して、それらが何であるかを確認する方法はありますか?
c# - WCF MSMQ - 別のポートでの SRMP
MSMQ を介して WCF エンドポイントにメッセージをプッシュするアプリケーションがあります。
開発では、MSMQ プロトコルを使用するとうまく機能しますが、運用環境ではネットワーク ホップを行う必要があります。キューが特定のポート (22200) で HTTP 経由で WCF エンドポイントにプッシュされるように、これを設定する必要があります。
これは SRMP で動作すると思っていましたが、動作していません。発信 MSMQ がハングし、「接続を待機しています」というメッセージが表示されます。
確認したところ、正しいポートで URL にアクセスできました。
問題が何であるかをどのように解決しますか?
以下は、私のクライアント アプリケーションの構成です。
.net - 名前にアンダースコアが含まれるキューからメッセージが取得されない
QueuedService.TicketingService.svc
IIS で application name の下にホストされている WCF サービスがありますQueuedService_1_1
。したがって、サービスの完全な URL は次のとおりです。
サービスには net.msmq エンドポイントがあります。
MSMQ に次の名前のキューを作成しました。
このサービスを呼び出すと、メッセージはキューに配信されますが、サービスによって取得されません。ブラウザでサービスの URL にアクセスすると、メッセージがサービスによって選択されます。
名前付け、つまり_1_1
IIS アプリケーション名とキュー名に問題がありますか? _1_1
IISQueuedService
と名前付きのキューを使用せずに同じサービスをホストするとQueuedService/QueuedService.TicketingService.svc
、それが機能するためです。
wcf - WCF Net.Msmq サービスでエラーが発生することがある
私は自己ホスト型の WCF サービスを持っています (Windows サービス内で実行されます)。このサービスは、MSMQ でメッセージをリッスンします。このサービスは PerCall であり、Windows 2008 R2、.NET 4.0、MSMQ 5.0 で実行されるトランザクションです。
数週間に 1 回、サービスはメッセージの処理を停止します。Windows サービスは引き続き実行されますが、WCF サービスホスト自体は停止します。次の例外で servicehost が失敗します。
タイムスタンプ: 3/21/2015 5:37:06 PM メッセージ: HandlingInstanceID: a26ffd8b-d3b4-4b89-9055-4c376d586268 タイプ 'System.ServiceModel.MsmqException' の例外が発生し、キャッチされました。-------------------------------------------------- ------------------------------- 2015/03/21 13:37:06 タイプ: System.ServiceModel.MsmqException、システム.ServiceModel、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089 メッセージ: キューからメッセージを受信中にエラーが発生しました: トランザクションの操作シーケンスが正しくありません。(-1072824239、0xc00e0051)。MSMQ がインストールされ、実行されていることを確認します。キューが受信できることを確認してください。ソース: System.ServiceModel ヘルプ リンク: ErrorCode: -1072824239 データ: System.Collections.ListDictionaryInternal TargetSite: Boolean TryReceive(System.TimeSpan, System.
特定の例外 (「トランザクションの操作シーケンスが正しくありません」) を検索しても、多くの情報は得られません。また、障害が発生したサービスを修復する方法に関するほとんどの提案は、障害が発生したイベント内でサービスホストを再起動することです。
私はそれを行うことができますが、この例外の既知の修正可能な原因があること、および/またはそれを処理するためのよりクリーンな方法があることを願っています。
c# - MSMQ エンドポイントでメッセージ インスペクターを使用して WCF 要求と応答をログに記録する
私は WCF サービス レイヤーに取り組んでいます。これは、メッセージ インスペクターを使用して、要求と応答の SOAP メッセージをログに記録します。
関係のないコードを取り除いたインスペクタを次に示します。
MSMQで最適に機能する新しいビジネス要件が発生するまでは、すべて順調でした。そのため、現在 MSMQ エンドポイントを実装中です。ここでの問題は、メッセージが一方通行であることです。
応答オブジェクトを作成しても、インスペクターの BeforeSendReply メソッドで「応答」は null になり、クライアントには何も返されません。
現時点でもっともらしいと思われる唯一のことは、ロギングをメッセージ インスペクタからメッセージ プロセッサ ロジックに移動し、そこでリクエストを処理してレスポンスを構築することです。ただし、可能であれば、現在の設定を維持することを好みます。
問題は、一見ありそうにないように見えますが、「MSMQ を使用して、インスペクターの BeforeSendReply メソッドのパラメーターに応答メッセージを含めることは可能ですか?」ということです。
前もって感謝します。よろしく。
編集 2015.08.27
Message Inspector を使用してロギングをやめました。今、私のサービス層にログインしています。これが私がやったことです。私はまだ提案を受け付けています。