問題タブ [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.

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

c# - MSMQ と Unity.Wcf - サービスがキューを消費しない

Unity コンテナーを使用して WCF 経由で MSMQ を実装できた人はいますか?

サーバーが起動し、プライベート キューが作成され、mex が公開されます。私のクライアントは、サービス参照を解決し、接続して、メッセージをキューに正常に書き込むことができます。ただし、サーバーはメッセージを取得せず、未使用のままキューに残します。

エラーの原因を絞り込むために、標準を使用してMSDN チュートリアルServiceHostから MSMQ サンプル アプリケーションを実装しました。

メッセージは正常に取得され、消費されます。

UnityServiceHostしかし、 byを使用するとすぐにUnity.Wcf:

サービスはメッセージを消費していないため、メッセージはキューに積み上げられます。

Unityの公式ドキュメント(無料の電子書籍としてのみ入手可能) を調べて、追加情報を探してみましたが、成功しませんでした。

UnityServiceHostMSMQ を処理できないか、 UnityContainer.

誰かがこれを機能させることができましたか? 提案やヒントはありますか?

0 投票する
0 に答える
124 参照

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 アプリ プール ユーザーにセキュリティを設定しました。また、一時的に全員を完全に制御しようとしましたが、それも役に立ちませんでした。非トランザクション キューも試しましたが、どちらも役に立ちませんでした。

メッセージはジャーナルに表示されず、エラーもログに記録されませんが、正しい場所を探していない可能性があります。それに関する指針も役に立ちます。

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

c# - MSMQ - 現在処理中のメッセージを照会できますか?

MSMQ エンドポイントで WCF を使用しており、この質問で説明されている動作が見られます。基本的に、サービスは一度に 1 つのメッセージを処理するように調整されていますが、2 つのメッセージがキューから取得され、1 つがメモリに保持されているように見えますが、もう 1 つがメモリに保持されているようです。処理中です。

これは、何が起こっているかを監視する上で問題を引き起こします。どのジョブがキューにあり、どのジョブが処理されているかを示す監視ページがありますが、この動作により、ジョブがキューから取り出されたときに効果的に消える期間がありますが、まだ処理が開始されていません。MessageQueue.GetAllMessages()現在キューにあるメッセージのリストを取得するために使用しています。

私は MSMQ にはあまり詳しくありませんが、メッセージがキューから取り出されると、他のプロセスが削除しないように非表示としてマークされると思います。これらのメッセージを照会して、それらが何であるかを確認する方法はありますか?

0 投票する
0 に答える
184 参照

c# - WCF MSMQ - 別のポートでの SRMP

MSMQ を介して WCF エンドポイントにメッセージをプッシュするアプリケーションがあります。

開発では、MSMQ プロトコルを使用するとうまく機能しますが、運用環境ではネットワーク ホップを行う必要があります。キューが特定のポート (22200) で HTTP 経由で WCF エンドポイントにプッシュされるように、これを設定する必要があります。

これは SRMP で動作すると思っていましたが、動作していません。発信 MSMQ がハングし、「接続を待機しています」というメッセージが表示されます。

確認したところ、正しいポートで URL にアクセスできました。

問題が何であるかをどのように解決しますか?

以下は、私のクライアント アプリケーションの構成です。

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

.net - 名前にアンダースコアが含まれるキューからメッセージが取得されない

QueuedService.TicketingService.svcIIS で application name の下にホストされている WCF サービスがありますQueuedService_1_1。したがって、サービスの完全な URL は次のとおりです。

サービスには net.msmq エンドポイントがあります。

MSMQ に次の名前のキューを作成しました。

このサービスを呼び出すと、メッセージはキューに配信されますが、サービスによって取得されません。ブラウザでサービスの URL にアクセスすると、メッセージがサービスによって選択されます。

名前付け、つまり_1_1IIS アプリケーション名とキュー名に問題がありますか? _1_1IISQueuedServiceと名前付きのキューを使用せずに同じサービスをホストするとQueuedService/QueuedService.TicketingService.svc、それが機能するためです。

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

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.

特定の例外 (「トランザクションの操作シーケンスが正しくありません」) を検索しても、多くの情報は得られません。また、障害が発生したサービスを修復する方法に関するほとんどの提案は、障害が発生したイベント内でサービスホストを再起動することです。

私はそれを行うことができますが、この例外の既知の修正可能な原因があること、および/またはそれを処理するためのよりクリーンな方法があることを願っています。

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

c# - MSMQ エンドポイントでメッセージ インスペクターを使用して WCF 要求と応答をログに記録する

私は WCF サービス レイヤーに取り組んでいます。これは、メッセージ インスペクターを使用して、要求と応答の SOAP メッセージをログに記録します。

関係のないコードを取り除いたインスペクタを次に示します。

MSMQで最適に機能する新しいビジネス要件が発生するまでは、すべて順調でした。そのため、現在 MSMQ エンドポイントを実装中です。ここでの問題は、メッセージが一方通行であることです。

応答オブジェクトを作成しても、インスペクターの BeforeSendReply メソッドで「応答」は null になり、クライアントには何も返されません。

現時点でもっともらしいと思われる唯一のことは、ロギングをメッセージ インスペクタからメッセージ プロセッサ ロジックに移動し、そこでリクエストを処理してレスポンスを構築することです。ただし、可能であれば、現在の設定を維持することを好みます。

問題は、一見ありそうにないように見えますが、「MSMQ を使用して、インスペクターの BeforeSendReply メソッドのパラメーターに応答メッセージを含めることは可能ですか?」ということです。

前もって感謝します。よろしく。


編集 2015.08.27

Message Inspector を使用してロギングをやめました。今、私のサービス層にログインしています。これが私がやったことです。私はまだ提案を受け付けています。