問題タブ [wcf-routing]

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 に答える
8048 参照

c# - Wcf RoutingService での OperationTimeout の設定

RoutingServiceで OperationTimeout を設定するのに苦労しています

問題は、メッセージの転送先のサービスが応答を返すのに 1 分以上かかることです。これにより、RoutingService で OperationTimeout 例外が発生します。

RoutingService のクライアント プロキシで OperationTimeout を設定しようとしましたが、成功しませんでした。

私がしたことは、Endpoint Behavior を追加し、ApplyClientBehavior メソッドにカスタム IClientMessageInspector を追加することです。

このコード スニペットに示すように、カスタム ClientMessageInspector で OperationTimeout を設定します。

私にとっては、この時点では遅すぎるように思われるため、RoutingService で生成されたプロキシはこの設定を気にしません。

助言がありますか?

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

wcf - WCF 4 ルーティング サービス プロトコルのブリッジの問題 (nettcp 公開サービス)

WCF ルーティング サービス 4.0 の問題に直面しています。http から net.tcp へのプロトコル ブリッジングを行っています。net.tcp WCF サービスは、AppFabric 1.1 内の IIS 7.5 でホストされています。この問題は、Windows 7 開発ボックスと Windows 2008 R2 サーバーの両方で発生します。問題は、IIS ApplicationPool のリサイクルまたは ApplicationPool の停止後にルーティング サービスで System.ObjectDisposedException が発生し、ルーティング サービスへの次の呼び出しで System.ServiceModel.ProtocolException がスローされることです。サーバーが開始したシャットダウンにより、出力セッションが自動的に閉じられました。DispatchRuntime.AutomaticInputSessionShutdown を false に設定して自動クローズを無効にするか、リモート サーバーでシャットダウン プロトコルを変更することを検討してください。

この時点で、Routing Services を介した以降の呼び出しはすべて実行できません。奇妙なことに、net.tcp を介して公開されている WCF サービスが自己ホストされている場合、この問題は発生しません。そのため、WCF サービスがホストされているコンソール ホストを閉じてから再度開くと、ルーティング サービスが再び機能します。IIS がホストする WCF サービスが net.tcp バインディングを介して公開されている場合、この回復は失われます。

この問題を再現するために、http://msdn.microsoft.com/en-us/vs2010trainingcourse_whatsnewinwcf4_topic17.aspx から Ex8-ProtocolBridging ソリューションを取得し CalculatorServiceIis と呼ばれる CalculatorService の IIS ホスト バージョンを追加しました。

ソリューション ファイルと Word ファイル「DescribeIssue.docx」をhttps://rapidshare.com/files/3527502127/ProtocolBridgingIssue.zipにダウンロードしました。その問題を再現する方法の完全な説明がそこにあります。

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

wcf - コンテンツ変換による WCF ルーティング

WCF ルーティング サービスを実装しました。また、サービス (ま​​たは同様の WCF サービス) が規定の統一された (コンテンツに依存しない) 方法でペイロードを変換することも望んでいます。たとえば、ペイロードは常にフォームを取り、すべての場合Foo<T>と同様に渡したいと思います。Bar<T>変換が XSLT またはプログラムによるものであることを嬉しく思います。タイプではない受信メッセージがどうなるかは気にしませんFoo<T>

多くの OOTB 機能 (多数のバインドのサポートなど) を提供する WCF を使用したいと考えています。新しいメッセージ型がルーティングされるたびに再コンパイル/再展開が必要になるため、多数のボイラープレート メソッドを使用して WCF サービスを実装して、閉じたジェネリック ( Foo<Class1>-> Bar<Class1>; Foo<Class2>-> ; など) を変換することは現実的ではありません。Bar<Class2>

私の知る限りでは、WCF はオープン ジェネリックを処理せず、WCF ルーティングはコンテンツ変換 OOTB を促進しません。とはいえ、System.ServiceModel.Routing.RoutingService明らかに WCF 呼び出しを非特定の形式でインターセプトするため、同じパターンを活用して目標を達成したいと考えていました。誰かがこれを行う方法について指示を与えることができますか (またはそれが不可能な理由を示してください)?

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

c# - WCF ルーティングと検出の組み合わせ

WCF ルーティング サービスと Discovery を組み合わせようとしていますが、連携できないようです。これは私のシナリオです:

クライアントからの要求がルーティング サービスに届きます。ルーティング サービスで検出を使用して正しいエンドポイントを見つけ、見つかったエンドポイントに着信メッセージを送信するようにします。ただし、ルーティング サービスは [ http://tempuri.org]名前空間を検出サービスに送信します。したがって、検出サービスはルーター サービスで受信メッセージの名前空間を想定しているため、その名前空間でサービスを見つけることができません。

クライアント側で検出構成を使用するとエンドポイントを解決できるため、検出サービスを正しく構成したことはわかっています。ただし、私の運用シナリオでは、クライアント側での検出はできません。また、検出を使用してエンドポイントを解決しない場合、ルーター サービスは機能します。

これは私のルーティングと検出の構成です:

これは、検出サービスに何が送信されているかを示すフィドラーの図です。([ http://tempuri] 名前空間に注意してください): [http://tempuri] 名前空間が検出サービスに送信されていることを示す Fiddler のスクリーンショット

私のシナリオが可能かどうか、そしてどのようにアドバイスできますか?

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

wcf - ルーティング サービスを使用した WCF サービスのバージョン管理

私は、新しい WCF サービス スイートのバージョン管理戦略を策定する任務を負っています。私が読んだ多くの記事では、中間ルーティング サービスを使用して、通話を適切なサービス バージョンに転送することを推奨しています。これがどのように機能するかは理解していますが、クライアントを重大な変更から保護するという点で、これがどれほどの利益をもたらすか疑問に思っています.

たとえば、エンドポイントが異なる 2 つのバージョンのサービスがあるとします。

ルーティング サービス ソリューションは、SOAP メッセージ内のカスタム 'version' ヘッダーを探し、呼び出しを適切なサービスにルーティングします。バージョン ヘッダーが見つからない場合は、最新バージョンを使用できます。

または、両方のエンドポイントを公開するだけで、消費者は必要なバージョンを呼び出すことができます。

あるソリューションが他のソリューションより優れている点は何ですか? ルーティング サービスを追加すると、追加のレベルの構成が追加されるようです。どちらのソリューションも、アップグレードを希望する場合、消費者がコードを変更する必要があります...

これについては別の投稿で質問する方がよいかもしれませんが、サービスの複数のバージョンを維持するということは、ソース コードでコントラクトの同時バージョンが必要になることを意味します。これを管理するための推奨される方法はありますか (名前空間など)?

ありがとう

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

c# - 間に RoutingService を使用して、クライアントと WCF サービス間の安全で疎結合の通信

ルーターにこれらのオブジェクトの正確なタイプを知らなくても、RoutingService を介してピア WCF サービスにオブジェクトを送信することは可能ですか?

私の意図は、一度ルーターを作成してから、新しい WCF サービスを追加し、それらをルーティング テーブルに動的に追加して、クライアントがこれらのサービスと通信できるようにすることです。もう一度。

私はこのような一般的な契約を考えていました:

これを、3 つのコンポーネント (クライアント、ルーター、サービス) すべてがリンクする共通ライブラリに入れることができます。しかし、ルーターを変更することなく、新しいデータ交換を行う新しいクライアント/サービスを追加できるようにする新しいサブクラスを派生させることが可能になるかどうかはわかりません。

アドバイスはありますか?クライアントからサービスまで暗号化が適用されている場合、ソリューションは機能しますか?

前もって感謝します。

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

wcf - XPathを使用したWCFルーティング:無効な修飾名の例外

wcf で XPath を使用してコンテンツ ベースのルーティングを実装しようとしています。

次のように、サービス コントラクトとデータ コントラクトを含むクラス ライブラリを作成しました。

次のように1つのサービスを作成しました。

そして、「値」に基づいてルーティングを実装しようとしています

app.config (ルーター プロジェクト内) で、名前空間と XPath フィルターに次の行を追加しました。

しかし、コードを実行するたびに、無効な修飾名例外として「 cc://value1 > 500 」の例外が発生します。

どうすればこれを解決できますか?

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

wcf - 組み込みの WCF ルーター サービスで URL ルーティングを使用してエラーを受け取る

顧客のユーザー/パスワード セキュリティ ポリシーを持つ WCF ルーター サービスを介して、拡張機能の少ない (可能であればファイルのない) ルーター エンドポイントを作成したいと考えていました。SOAP メッセージをルーティングしようとすると、次の Fault Exception が発生します。

URL ルーティングのために、サービス ホストの AspNetCompability を有効にする必要がありました。
私が従った手順は次のとおりです
。RouteTable で適切な URL ルーティング ルールを使用して、基本的な .net 4.0 Web アプリケーションをセットアップしました。

私の CustomServiceHostFactory コード:

web.config ファイルで、サービス エンドポイントと動作を定義します。

バインドと動作の構成は単純で、単純なユーザー名とパスワードの検証要件があります。

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

c# - WCF RoutingService は、同じコントラクトを持つ 2 つの異なる WCF サーバーからクライアントにコールバック メッセージをルーティングする方法を教えてください。

私の WCF サーバーは次のように動作します。たとえば、Subscribe() などのサービス メソッドを呼び出して、サーバーにサブスクライブします。MessageReceived(string message) などのコールバック チャネルで結果を返します。

現在の問題は、両方ではなく、1 つのサービス エンドポイントからのみコールバック メッセージを取得していることです。実際、デバッグするだけで、私の 2 番目のサービスがリクエストを受け取っていないことがわかります。誰が問題が何であるか知っていますか?これが私のコードです(serviceAddresses文字列に2つのnet.tcpアドレスがあることに注意してください):

だからもう一度...これが私が欲しいものです:

これは私が得ているものです(ルーターに2番目のサービスを追加しましたが、サービスメソッドを呼び出すことすらないようです):