問題タブ [netmsmqbinding]

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 投票する
2 に答える
1017 参照

wcf - MSMQ は破損しますか?

私は、自社開発のクラウド ソリューションを持つ会社から始めたばかりです。彼らは、SQL Server を中心に中央キューイング メカニズムを構築しました。テクニカル ディレクタと話すと、過去に MSMQ を試したことがありましたが、大量のキューが破損するという問題に遭遇したとのことです。インターネットで検索を行っていますが、この問題について何も見つかりません。

誰もそのようなことを聞​​いたことがありますか?これに関する良い記事はありますか?

また、この目的で WCF を使用していません。WCF のトランザクションの性質は、これらの破損の問題を解決しますか?

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

c# - WCF サービスの TransactionTimeout を動的に設定するにはどうすればよいですか?

MSMQ で実行されている WCF サービスのトランザクション タイムアウトを動的に設定できるようにする必要があります。MSDN の例に従っています: http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.channeldispatcher.transactiontimeout.aspx。ただし、設定しているタイムアウトは機能していないようです。

TransactionTimeoutプロパティを設定するために使用しているコードは次のとおりです。

サービスを実行し、サービスの実装に 2 分間の遅延を設定すると、別の MSMQ キューに書き込もうとすると、トランザクション登録エラーが発生します。

例外: キューへの送信中にエラーが発生しました: 指定されたトランザクションを登録できません。(-1072824232、0xc00e0058)。MSMQ がインストールされ、実行されていることを確認します。ローカル キューに送信する場合は、必要なアクセス モードと承認を備えたキューが存在することを確認してください。

過去にこれを機能させることができた人はいますか?どんなアイデアでも大歓迎です。

前もって感謝します。

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

wcf - MsmqIntegrationBinding または netMsmqBinding を使用する必要がありますか?

私の会社はサードパーティのアプリケーションを購入しました。ドキュメントもサポートもありません。このアプリケーションは .net を使用しており、キューを作成します。

メッセージがキューに到着したらすぐに受け取るアプリケーションを作成する必要があります。

どのバインディングを使用する必要がありますか? この 2 つのバインディングの違いを読みました。どちらを使うかまだ迷っています。

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

wcf - Fitnesse で OneWay WCF 操作をテストする方法

現在のアプリケーションでは、操作コントラクトを一方向としてマークする必要がある WCF netMSMQBinding を使用しようとしています。

また、Fitnesse をテスト エンジンとして使用しようとしています。このテスト ケースでは、シナリオをエンド ツー エンドでテストする必要があります。これは、メッセージが配置されるとすぐに返されるため、一方向操作を使用できないことを意味します。 queue とfitnesse は結果をアサートしようとしますが、実際のメッセージではまだ処理されている場合とされていない場合があります。したがって、一方向の操作を使用する場合は、実行が完了するまで何らかの方法で待機する必要があります。

試したアプローチ/研究中..

  1. 構成を読み取ることにより、ホスティング時に OperationDescription を変更します。これにより、Fitnesse IsOneWay が False でホストされているが、実稼働環境では IsOneWay が True であり、その後、実稼働環境でのみユーザー MSMQ バインディングをテストし、tcp または netnamedpipe を使用するようになります。

    カスタム ServiceHost を作成し、Service を開く前に OperationDescription を変更しようとしましたが、OperationDescription クラスの IsOneWay は読み取り専用プロパティであり、.Net Framework コードを見ると、メッセージの数が返されます。私の意見では、サービス ホストの CreateDescription 操作をオーバーライドし、カスタム実装を提供する必要があります。そうみたいです

  2. メッセージが処理されるまで何らかの方法で待機するモニター フィクスチャを Fitnesse に作成します。

    アプローチ 1: MessageId と完了ステータスを格納するカスタム db テーブルを作成し、各メッセージ処理の最後にそのテーブルにレコードを入力します。これで、fitnesse フィクスチャはテーブルをポーリングし、実行が完了するまで待機することができます。

    アプローチ 2: 何らかの方法で MSMQ をポーリングし、メッセージがいつ処理されるかを把握します。どうすればうまくいくか、まだまだ研究中です。

現在のアプローチまたは新しいアプローチの指針を提案してください。

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

wcf - WCF サービス (ServiceHost) の終了は見た目ほど優雅ではありません

を呼び出すとserviceHost.Close()、タイムアウト値serviceHost.Close(TimeSpan.FromMinutes(10))を設定しても、メッセージの受信が停止している間、1 つまたは 2 つのメッセージが時々失われるようです。

操作の途中でサービスを停止したいが、受信済みの残りのメッセージを処理したい。メッセージがまだ処理されている間にサービスを適切に閉じる方法はありますか?

私はすでに app.config のcloseTimeoutandreceiveTimeoutを 10 分に設定していますが、これも使用していますRequestAdditionalTime(600000)が、それでもこの問題が発生します。10分で閉まらず、最大1分で閉まります。

私が使用しているバインディングはnetMsmqBindingです。

編集:

プロセスが終了していない場合はループし続けるServiceBaseメソッドに while ステートメントを追加して、問題を一時的に修正しました。OnStop汚いハックのように思えますが、今のところ機能します。綺麗に終わらせる良い方法があれば教えてください。

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

workflow - 「netMsmqBinding」失われたメッセージ

Windows サービスでホストされ、netMsmqBinding で動作する WF4 があります。サービスが開始されると、すべてが正常に機能します。サービスはプライベート キューを読み取り、メッセージ oky を処理します。

問題は、Windows サービスが停止しているときです。クライアントを実行し、メッセージをキューに入れます。しかし、Windowsサービスを開始すると、メッセージはキューから消えますが、処理を開始することはありません。サービスが開始された状態でキューに他のメッセージを送信すると、正常に処理されますが、サービスが停止したときにキューに入ったメッセージはすべて失われます。

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

http - 「既定の Web サイト」ではなく、HTTP 経由で MSMQ を動作させる方法

タイトルにあるのは本当に……。

DEFAULT Web サイトで MSMQ が HTTP 経由でメッセージを受信して​​います。IPアドレスが割り当てられているだけです。

特定の URL を使用してメッセージをキューにプッシュできるようにする必要があります (本番環境ではプロキシなどによってブロックされません)。

問題は、MSMQ が「既定の Web サイト」にしかインストールされないことです。そして、私の弱い試みは失敗しました。

  1. net.msmq および msmsq.formatname へのバインドを「既定以外の Web サイト」に追加しました。「既定の Web サイト」で機能するため、「バインディング情報」を「localhost」として使用しました。
  2. デフォルト以外の Web サイトで Web アプリケーションを作成しました。同じフォルダー (inetpub\wwwrot\msmq) を指します。[これが機能していないところだと思いますが、それはどのように「魔法のように」機能するのでしょうか??
  3. 「デフォルト以外」の Web サイトで MSMQ と呼ばれる「Web アプリケーション」に net.msmq および msmsq.formatname プロトコルを追加しました。

上記の手順は基本的に同じです。ここにあるさまざまなスクリプトを実行して、私もこれを行いました: http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Configuring-WAS-for-TCP- Endpoints/およびhttp://geekswithblogs.net/sathya/archive/2011/08/17/the-protocol-net.msmq-is-not-supported.aspx

喜びのないすべて。

特定のドメインを使用して msmq http メッセージを受信する必要があるだけです。

PS、本番環境では、ドメインにも SSL 証明書があります。(win サーバー 2008 r2 上)