問題タブ [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.
wcf - WCFルーティングサービスを介したレガシーASMXWebサービスへのコールのルーティング
2つの.asmxWebサービスへの参照を含むレガシーアプリケーションに取り組んでいます。より多くのエンタープライズサービスバスパターンに従うようにサービスレイヤーを再構築する必要があります。このパターンでは、クライアントはすべての呼び出しを1つのサービスに転送し、適切なサービスへの要求のルーティングを処理します。
私はWCFルーティングサービスを使用しており、RoutingServiceを介して適切なサービスにWCFサービスへの呼び出しを正常にルーティングすることができました。
たとえば、クライアントは次の場所に電話をかけることができます。
ルーティングサービスはそれをに転送します
構成で指定したルールを使用します
どういうわけか、.asmxサービスで同じ結果を達成したいのですが、レガシーアプリケーションのWeb参照URLを更新して、ルーティングサービスを指すようにします。これにより、上のリクエストがクライアントのURLに転送されます。現在使用中
変化する:
に
これは私が考えている方法で行うことができますか?
wcf - WCFルーティングサービスエラー-EndpointDispatcherでのContractFilterの不一致
状況は次のとおりです。いくつかのWCFサービスを実行している内部サーバーがあり、インターネット全体からそれらにアクセスできるようにしたい。この目的のために、私は公開されているWebサーバーで実行されているルーティングサービスを作成しました。
このルーティングサービスは機能しているように見えますが、メソッドを呼び出そうとすると、常に次のエラーが発生します。
EndpointDispatcherでのContractFilterの不一致が原因で、アクション'http://tempuri.org/IProcessManagementService/ListProcesses'のメッセージを受信者で処理できません。これは、コントラクトの不一致(送信者と受信者の間のアクションの不一致)または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインディング(メッセージ、トランスポート、なしなどのセキュリティ要件を含む)を持っていることを確認します。
サービスからすべてのセキュリティ要件を削除しようとしましたが、wsHTTPエンドポイントとbasicHTTPエンドポイントの両方を使用しました。何もうまくいかないようです。ただし、ルーティングサービスはmexサービスを適切に受け渡しているため、svcutilはクライアントクラスを構築できます。
コードを介してルーターを構成しています。ルーティングサービスには、ルーティングを提供するサービス名のリストと、ルーターおよびサーバーのアドレスが与えられます。
ルーティングサービスの構成は次のとおりです。
次のコードで関数を呼び出し、構成ファイルからルーターアドレス、サーバーアドレス、およびサービス名を提供します。
サービスは起動時にこの関数を呼び出し、ルーターリストに返された各サービスホストを開きます。
サーバー自体は、次のapp.configを介して構成されます
私は何が欠けていますか?
編集:私は問題を見つけたと思います-ルーティングサービスはサービスのためにこの構成を返していました-
これは、外部サーバーではなく、内部サーバーを指します。これがルーティングサービスの標準的な動作なのか、それともオーバーライド可能な動作なのかはわかりません。
web-services - Web サービス プロバイダーのルーティング
利用可能なサービスのリストを維持し、要求の性質またはタイプに基づいてエンドポイントを提供できるサービス (web/windows、.net) を実装しようとしています。その後、リクエスタは実際の作業リクエストを提供されたエンドポイントに渡すことができます。実際の作業リクエストには、非常に大きなチャンク (10MB から 1 GB を超える可能性もあります) のデータが含まれる場合があります。
WCF ルーティング サービスは完璧に適合するように思えますが、実際の作業要求がそれを通過する必要があり、ルーティング サービスでボトルネックが発生するため、そうではありません (全体のポイントは、システムをスケールアウトできるようにすることです)。 )。メッセージが小さければ、WCF ルーティングは簡単です。
法案に適合するものはありますか?できれば .NET/Windows ベースですか?
wcf - 双方向ルーティング サービス
次の要件があります。
クライアントは、ルーター/リレー サービスを呼び出すことができます。これにより、ターゲット サーバー上のサービスが呼び出されます。ターゲット サーバーは結果をリレー サービスに送り返し、リレー サービスはその結果をクライアントに転送します。
私はこのSOの質問を見てきましたが、これはクライアントからリレーサービス、そして最終的にターゲットサーバーへの一方向メッセージにすぎないと想定しているため、私のニーズを満たすとは思いません。
私はWCFにかなり慣れていないので、この問題について洞察を得て、正しい方向に研究を集中させたいと思います。
c# - AutofacとRoutingService
ルーティングインフラストラクチャを構築しようとしていますが、AutofacをIoCコンテナとして使用しています。私はウィキを読み、次の手順を知っています。
}
私のシナリオを満たすために、ここにこのコードがあります:
AutofacからRoutingServiceのコンストラクターが見つからないためにエラーが発生するため、これは機能しません(そのコンストラクターはプライベートです)。
ヒントはありますか?
wcf - メッセージ セキュリティを使用した WCF ルーティング
Message Security Authenticationを使用した WCF サービスがあります。
ロード バランシング用のルーティング サービスを設定したいと考えています。
何らかの理由で機能しないため、 includeExceptionDetailInFaults を有効にして例外を表示したので、クライアントで次のように表示されます。
クライアント証明書は提供されません。ClientCredentials にクライアント証明書を指定します。
ルーター→サービスから証明書が転送されていないようです。
現在、クライアント/ルーター/サービスは同じマシン上にあるため、すべての証明書を持っていますが、それらを別のマシンに展開する場合、ルーターは秘密鍵を持っている必要がありますか?
さらに、ルーターとサービスの間にセキュリティで保護されていない接続を確立する (セキュリティをオフロードする) 場合、発信者の ID をどのように提供できますか?
編集:すべてのクライアント/ルーター(サーバーとクライアントの両方)/サーバーに対して、同じように構成されたセキュリティ:
.net - ルーターをホストするサービスからの複数の要求を引き起こす WCF ルーティング Https
基本認証を使用して、安全な外部 SOAP Web サービスに接続する必要があるシナリオがあります。通常、これは問題ではなく、私のローカル開発環境では basicHttpBinding で動作します。アプリが展開されると、アプリは DMZ に置かれ、世界に発信するためのアクセス権がなくなります。これにより、内部ネットワークでルーティング サービスが必要になり、WCF 4.0 の新しいルーティング機能が適切な候補のように思えました。ルーティング サービスを介して PoC として http 経由で別の外部サービスへの呼び出しを行うコードを取得し、https に移行することにしました。最初の呼び出し元アプリからのユーザー名資格情報がルーティング サービスによって渡されないことがすぐにわかったので、カスタム IEndpointBehavior を実装して、外部クライアントへのルーティング サービス呼び出しに適切な資格情報を追加しました。
クライアント アプリ:
ルーティング サービス (サービス エンドポイント):
ルーティング サービス (クライアント エンドポイント):
明らかな何かが欠けていないと仮定すると、これはすべて機能し、httpsを介してクライアントからルーター、外部サービス、およびその逆に情報をやり取りする陽気な方法で進むはずです。(大前提)
代わりに、次の例外とスタック トレースが表示されました。
これを見て、私はそれをもう少し掘り下げ、すべてを Fiddler にパイプして、何が起こっているのかを確認しました。
私のクライアント アプリは、IIS がホストするルーティング サービスを https 経由で呼び出し、待機します。IIS ホステッド ルーティング サービスは、外部サービスを呼び出します。これは物事が奇妙になった場所です。新しい「エンティティ」が SOAP エンベロープで返されることを示す https 200 があり、サービスから別の新しい「エンティティ」を返す別の https 200 があり、クライアント アプリからの呼び出しでほぼ 504 ゲートウェイ タイムアウトが発生します。 2 番目の要求が外部サービスから返された正確な時刻。
このセットアップは私に新しい例外を与えます:
例外が示唆するようにタイムアウトを上げようとしましたが、これは数分ではなく 1 秒か 2 秒で失敗したため、うまくいきませんでした。したがって、この問題の例やその他の解決策を探してインターネットを精査した後、この時点で、これが失敗する理由、潜在的な問題、または同じことを達成しようとしている人に答えるものを見つけることができませんでしたもの。
コミュニティの皆さんが、私がまだ解決していない問題を見つけて、すでにこの問題を自分で解決しており、喜んで解決策を共有してくれること、またはバインディングやセットアップの問題を簡単に見つけられることを願っています。
wcf-binding - .Net4 WCF ルーター サービスによる動的ルーティング
.net 4 wcf サービスを使用した動的ルーティングの例を探しています。私を助けてください。
wif - WCF ルーティング + WIF
新しいルーティング サービスはセキュリティをどのように処理しますか? http://blogs.microsoft.co.il/blogs/applisec/archive/2011/12/12/wcf-routing-and-message-security.aspxによると、既定の Windows セキュリティが選択されていない場合 (通常、単純なユーザー名/パスワードのシナリオ)。
wcf ルーティングは、ルーターが WS-Security で保護されたメッセージを HTTP 経由で受信し、セキュリティ トークンのラップを解除せずに HTTP 経由で別のサーバーに転送するシナリオを実際にサポートできますか?
私のシナリオは次のとおりです。
- サーバー (証明書利用者)、ユーザー名/パスワード認証によるカスタム STS、およびクライアント。ws2007FederationHttpBinding とメッセージ セキュリティを使用します。
- ここで、wcf ルーティングをセットアップします。これは、basicHttp または wsHttp で動作します。
- 次に、WIF を使用してプロキシをインスタンス化できます。STS はクレームを生成しますが、最初のサービス呼び出しで失敗します。ルーターが証明書の定義を待っているようで (含まれている、そうしないとエラーが発生します)、Cardspace UI が必要なようです (実際にはユーザー名/パスワードを使用しています)。
もしそうなら、例がありますか?
ありがとう。