問題タブ [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.
c# - IIS で wcf ルーティング サービスをホストする方法は?
これは私の質問hereに関連しています。
そのため、IIS でホストされている既存の wcf サービスが既に実行されています。ヘッダーで XPath フィルタリングを実行するルーター サービスを作成しました。したがって、ヘッダーが一致する場合は、service1 に移動します。これで、IIS でルーター サービスをホストし、 http://iis.com/myrouter/router.svc/のようにアクセスして、この wsdl を提供できます。今、このhttp://iis.com/myrouter/router.svc/general/getMyMethod?blah=blahblahのような service1 でサービス メソッドを要求しようとすると。404エラーが発生します。ちなみに私はフィドラーを使いました。
フィドラーからのリクエストで、「service_version:1」のようなカスタム ヘッダーを追加しました。途中で名前空間を使用しました<namespaceTable>
が、リクエストに追加する方法がわかりません。とにかく、私の主な関心事は、私のルーター サービスを IIS で動作させるにはどうすればよいかということです。
更新:System.ServiceModel.Routing.RoutingService
ちなみに使用しています。私が達成しようとしているのはルーティング サービスです。
よろしくお願いいたします。
c# - WCF ルーターを Web サービスのドロップイン代替として機能させるにはどうすればよいですか?
現在、このコントラクトに準拠する (ライブ) WCF Web サービスがあるとします。
これは現在、期待どおりに機能します。Web クライアントは AJAX を使用して引数を (JSON 文字列として) サービスに POST し、Web サービスは JSON 応答を返します。
ただし、今後のクライアント バージョンの API 互換性を破る必要があり、すべてのユーザーがクライアントの更新されたバージョンをすぐに使用できるとは限りません。
私がやりたいことは次のとおりです。
MyWebService
など、目的のクライアントのバージョンを示す名前に変更しますMyWebService_1_0
。- IRequestReplyRouterと同じ流れで新しいルーティング サービスを作成し
MyWebService
、既存のサービスのドロップイン置換として機能するように名前を付け ます。 - new がルーティング先
の適切な実際のサービス (この場合は ) を決定できる
version
ように、要求の HTTP ヘッダーにヘッダーを含めます。MyWebService
MyWebService_1_0
理論的には、これは簡単に思えます。私が直面している問題は、上記のサービスを作成しようとするたびに、Ajax 呼び出しwww.mywebsite.com/MyWebService.svc/VersionCheck/
が完全に失敗することです (この状況でMyWebService
はルーティング サービスであり、最初に使用したサービスとは異なります)。
私の質問は、この状況でルーターをドロップインの代替品として機能させるにはどうすればよいでしょうか? または、これを処理するためのより良い方法はありますか? 現時点では、クライアント側の更新は可能ではありません。
wcf - 優先度フィルタを備えたWCFルータ
70-513試験を準備するために、次の質問を見つけました。
Windows Communication Foundation(WCF)ソリューションは、2つのサービスを使用してショッピングカートを管理します。サービスAは、合計$0から$500の広告申込情報を含むメッセージを処理します。サービスBは、合計500ドルを超える広告申込情報を含むメッセージを処理します。すべてのメッセージは、ビジネスロジックにとって同等に重要です。WCFルーティングを使用して、着信メッセージを適切なサービスにルーティングする必要があります。ルーターに追加する必要がある2つのメッセージフィルターはどれですか。(それぞれの正解は解決策の一部を示しています。2つ選択してください。)
- A.合計$0から$500のメッセージをサービスAに転送する優先度100のメッセージフィルター
- B.合計$0〜$500のメッセージをサービスAに転送する優先度0のメッセージフィルター
- C.すべてのメッセージをサービスBに転送する優先度0のメッセージフィルター
- D.すべてのメッセージをサービスBに転送する優先度100のメッセージフィルター
答えはAとCです。
AとCが答えなら、BとDも正しいのではないでしょうか。これらの2つのペアは対称です。
url-rewriting - IIS7.5Wcfルーティングサービス。httpヘッダーが消える
WinFormsクライアントとバックエンドサーバーの間に配置するために、wcfルーティングサービス(IIS 7.5)をセットアップしました。
httpヘッダー「Accept-Language」の消失が原因と思われるバグを解決しようとしています。クライアントはリクエストでこのヘッダーを送信しますが、フィドラー(および私が観察している動作)によると、IISから送信されるリクエストには「Accept-Language」ヘッダーがありません。これにより、サーバーは、クライアントによって指定されたロケールではなく、en-USロケールでフォーマットされたデータを送り返します。
このURLで、彼らは私がやりたいことをする方法の例を示しています。これは私がそれに基づいて行った構成です(私はすでにURLの書き換えを行っていました)。serverVariablesの部分は、私の問題に対処するためのビットです。
URLの書き換えは正常に機能します。私の唯一の残りの問題は、httpヘッダーのマングリングです。IISマネージャーで、URL書き換えモジュール内で許可されたサーバー変数としてHTTP_ACCEPT_LANGUAGEを設定しました。私は何が欠けていますか?
wcf - カスタムフィルタを使用してWCFルータのバックアップリストの動作を変更するにはどうすればよいですか。
WCFルーターで例外を処理する方法を見つけようとしています。これは、何らかの理由でルーターがプライマリエンドポイント(ここでは、EndpointNotFoundException、ServerTooBusyException、またはCommunicationObjectFaultedExceptionがあります)にメッセージを送信できず、バックアップリストからエンドポイントを選択することを意味します。このメッセージをバックアップエンドポイントに送信します。ルーターサービスでこの内部例外を取得するにはどうすればよいですか?この時点で、メモリ内のルータ設定を動的に変更し、バックアップエンドポイントをプライマリエンドポイントに変更したいためです。IErrorHandlerでこれを行うことは可能ですか?または、このカスタムフィルターを実行することは可能ですか?カスタムフィルターを使用してバックアップ動作を変更するにはどうすればよいですか?
wcf - WCFルーティングサービスでルーティングをテストする方法は?
(明らかに)いくつかのWCFサービスにルーティングするWCFルーティングサービスがあります。SOAPメッセージングを使用し、SOAPヘッダーには、コンシューマーシステムが識別子を設定するための値が含まれています。
特定の要求が特定のWCFサービスにルーティングされることをどのようにテスト/証明しますか?
シナリオは次のとおりです。ルーターは特定のルーティング構成で展開されます。次に、ルーターが更新され、より多くのサービスへの新しいルートが含まれるようになります。新しいリクエストが正しくルーティングされ、既存のルートが変更されていない(つまり、正しくルーティングされている)ことをどのように証明しますか。
私たちが考えた解決策の1つは、応答にプロバイダーサービスの識別子をSOAPヘッダーに入力させ、コンシューマーシステムに基づいてアサーションを実行することです。リクエストはプロバイダーシステムと一致する必要があります。
SOAPヘッダーを使用するのが最善の方法ですか?
wcf - 同じ名前空間で IIS に WCF サービスの複数のインスタンスを展開できますか?
IIS 上の同じサイトを持つ複数の仮想ディレクトリに同じ WCF サービスを展開する必要があります。これらすべてのインスタンスに同じ名前空間を使用している場合、問題は発生しますか?
wcf - WCFルーターで現在のフィルターテーブルをプログラムで読み取る方法
次の構成の既存のwcfルーターがあります。
ルーターにクエリを実行して、「リクエストがあった場合、どのエンドポイントにルーティングしますか?」と尋ねられるようにしたいと思います。
APIを介してプログラムでルーティングを実行する方法はありますか?たとえば、エンドポイント名を返すルーティングメソッドを介してリクエストを実行します
wcf - WCFルーティングとさまざまなエンドポイント
少し問題があり、どこから始めればいいのかわかりません。
サブスクリプションサービスを作成する必要があります。また、サブスクリプション後に消費者が石鹸を送信する一意のアドレスを返す場合。これは次のように機能します。アドレスhttp://foo.org/SubscribeでSOAPを送信し、それに応じてアドレスhttp://foo.org/SubscriptionManager/1を取得すると、次のコンシューマーはhttp://foo.orgを取得します。 / SubscriptionManager/2など。
WCFを介してそれを実装するにはどうすればよいですか?WCFにはASP.Netルーティングのようなものがあり、 http://foo.org/SubscriptionManager/のようなリンクをルーティング し、パラメーターとして2にアクセスできると思いましたが、そのようなものは見つかりませんでした。
お役に立てれば幸いです。
wcf - WCF ルーティングとサービス メタデータ
多数の内部 Web サービス (WCF および ASMX) のプロキシとして機能する必要がある WCF ルーターを構築しています。ルーティング部分は非常に簡単ですが、このソリューションでサービス メタデータ交換がどのように機能するのか理解できません。
つまり、クライアントはルーターの背後にある内部サービスのメタデータをどのように取得するのでしょうか? コンシューマーに WSDL ファイルを手動で提供する必要がありますか? 適切な内部サービスのメタデータを返すようにルーターを設定できますか?
それとも、私のアーキテクチャが完全に間違っているのでしょうか?