問題タブ [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 ルーティング メッセージ セキュリティ
サービス間のルーティング機能を構築しています。元のサービスとルーティングを行うサービスの構成は同じです。両方とも、次のバインド構成で netTcpBinding を使用しています。
netTcpバインディング
セキュリティ モード="メッセージ"
メッセージ clientCredentialType="UserName"
サービスの動作では、マシンにインストールした AspNet メンバーシップ プロバイダーとクライアント証明書を使用します。
メッセージセキュリティをオフにすると問題なく中継されますが、オンにすると次の例外が発生します。
「メッセージを処理できませんでした。これは、アクション ' http://foo/Whatever ' が正しくないか、メッセージに無効または期限切れのセキュリティ コンテキスト トークンが含まれているか、またはバインディング間に不一致があるためである可能性があります*。セキュリティ非アクティブのためにサービスがチャネルを中止した場合、コンテキスト トークンは無効になります。サービスがアイドル セッションを途中で中止しないようにするには、サービス エンドポイントのバインディングの受信タイムアウトを早めに増やしてください。(私のものを強調)
私の考えでは、証明書がメッセージに対して 2 回 (1 回は元の呼び出しで、次にリレーで) 動作しており、これがメッセージのセキュリティ トークンを破損させているのです。
質問:
私の考えは的を射ていますか?
トークン サービスの複雑さなしにルーティングにメッセージ セキュリティを使用し続ける方法はありますか?
javascript - 別のドメインでホストされている WCF サービスへの JavaScript 呼び出しを行うにはどうすればよいですか?
ASP.NET と AJAX を使用して Web アプリケーションを設計しており、別の Web サイトで WCF サービス レイヤーをホストし、クライアント ページからサービス レイヤーへの JavaScript 呼び出しを行いたいと考えています。ブラウザーが別のポートまたはドメインへの AJAX 呼び出しを許可しないことを理解しています。ソリューションを設計する最善の方法は何ですか? サービス層への Web 参照を持つクライアントと同じドメインでホストされているサービスでプロキシ層を使用することを検討しています。より良い解決策はありますか?
workflow-foundation-4 - xamlx ワークフロー サービスを (事前に) 開始する方法
この質問に関連しています。
実行時にデータベースから定義の一部をロードする xamlx ワークフロー サービスがあります ( ActivityXamlServices.Loadを使用)。この理由は、バージョン管理が必要だからです。関連する質問を参照してください。WCF ルーティングを使用して、呼び出しを適切なサービスに転送します。
動的にロードする部分には、Receiveアクティビティが含まれています。ただし、データベースからロードしたワークフローの一部はワークフローの開始時にのみロードされるため、ワークフローが開始されない限り、このアクティビティは「見えません」。そのため、外部からはReceive
、ワークフローにアクティビティがないように見えます。
ワークフロー サービスのコントラクトを生成できないだけでなく、サービスを呼び出すこともできません。私の最初の試みは、ワークフロー サービスで適切なコントラクトを使用してソープ コールを行うことでした。ただし、その場合、ランタイムはワークフローを自動的にアクティブ化しません。問題は、IIS 内でホストされているワークフローを開始するにはどうすればよいかということです。
wcf - 信頼できるセッションとコールバックを使用した WCF4 ルーティング
私がやろうとしていること、および関連する環境/状況の説明から始めます。
.NET 4 を使用して実装した既存の WCF サービス (Windows サービスとしてホストされている) を使用しています。このサービスは、net.tcp と信頼できるセッション、およびクライアント アプリケーションへのコールバックを利用します。WCF サービスとクライアント アプリケーションは、同じネットワーク ドメイン (Domain_A と呼びます) で動作し、適切に動作します。
既存:
私が実装しようとしている新しい機能は、(WCF 4 を介した) ルーティング サービスの機能です。Domain_B でも実行される Domain_A で実行される WCF サービスの同一のコピーがあります。net.tcp および mex エンドポイントに必要なポートは、各ドメインの 2 台のコンピューター間で開かれ、反対側のドメインから各サービスのメタデータに正常にアクセスできます。
私が確信が持てないのは、サービス要求のルーティングに関する限り、どのルートを (アーキテクチャ的に) 取るべきかということです。クライアントによって行われた特定の要求は、Domain_A のサービスのみが応答でき、その他の要求は Domain_B のサービスのみが応答できます。宛先サービスは、各サービス呼び出しで (クライアントから) 渡されるパラメーターによって決定されます (または決定される可能性があります)。また、クライアント アプリケーションは Domain_A からのみ実行されます。
必要な機能:
私の最初の質問: ルーティングに関する限り、上記の「必要な機能」を実装するための最良のルートは何ですか (フィルタリング戦略、エンドポイント/コントラクトの種類など)? 私はルーティング サービスに不慣れで、私の要件に合った明確で簡潔な回答や例を見つけることができませんでした。
2 番目の質問: フィルタリングの質問に加えて、信頼できるセッションとコールバックを使用する WCF4 ルーティング サービスの例を教えてください。IDuplexSessionRouter について簡単に言及する以外に、多くのことを見つけることができないようです。IDuplexSessionRouter エンドポイントが最適な方法である場合、コールバックを実装する例を見つけることができませんでした。
ヘルプや情報をお寄せいただきありがとうございます。上記のことを明確にする必要がある場合はお知らせください。
wcf - サービス ルートのパラメータ
WCF webhttp プロジェクトに取り組んでいて、ルート構成のパラメーターについて質問がありました。
プロジェクト サービス (ユーザーがプロジェクトを追加および表示できるようにする) と、ユーザーがプロジェクト内のアイテムを表示できるようにするアイテム サービスの 2 つのサービスがあります。1 つのプロジェクトに複数のアイテムを含めることができます。
フォームのURLが欲しい
localhost//projects//addproject
localhost//projects//{projectid}//item//additem
localhost//projects//{projectid}//item//getitem//{itemid}
ItemService と ProjectService の 2 つのサービスがあります。Itemservice にはメソッド additem と getitem があります Projectservice にはメソッド addproject があります
グローバル ルートでこれらのサービスを宣言するにはどうすればよいですか? 私は試した
RouteTable.Routes.Add(new ServiceRoute("projects/{projectid}/item", new WebServiceHostFactory(), typeof(ItemService)));
これは私にエラーを与えます
すべてのコードを ProjectService に追加できますが、コードの保守性のために、ProjectService と ItemService の両方が必要です
c# - System.ServiceModel.Routing.RoutingService を使用した mex による WCF 4.0 ルーティング
私は次の場所で MEX を使用してサービスを提供しています。
最短の C#/F# コードは何ですか (XML 構成ファイルを理解するのに苦労しました ^_^") でルーターを作成するために書くことができますか?:
クライアントがルーターを使用できるように、MEX も適切にルーティングする必要があります。
サービス方法を発見する。
routing - WCF ルーティング サービス IClientMessageInspector --> BeforeSendRequest が呼び出されない
バック エンド サービスに送信する前に、WCF ルーティング サービスで各メッセージの HTTP ヘッダーを追加する必要があります。以下のクラスを実装しました。ただし、デバッグ時に「BeforeSendRequest」が呼び出されないため、HTTP ヘッダー ic が追加されません。
「AfterReceiveRequest」が呼び出されていることに気付き、HTTP ヘッダーを追加しましたが、これはヘッダーがバックエンス サーバーに送信されていないことがわかりました。
「BeforeSendRequest」が呼び出されたときに追加する必要がありますが、これはトリガーされません。
wcf - WCFルーティングバックアップリスト-使用時のログ
ルーティングがバックアップリストのエンドポイントを使用したときにログに記録できるように、WCFルーティングリストにログまたは動作を追加する方法はありますか?
動作は、ルーティングサービスによって最終的に使用されたエンドポイントを何らかの形でログに記録できますか?
wcf - null参照例外をスローするWCFサービス動作拡張
だから、私はルーティングサービスを書こうとしています。アイデアは、誰かがルーティング サービスを呼び出すたびに、エンドポイントが WCF 動作拡張によってランダムに選択されるというものです。それを実現するために、 DynamicReconfigurationと呼ばれる MSDN の例を少し変更して使用しました。私のweb.configの一部は次のようになります
動作と動作拡張の実装
問題は、UpdateRulesメソッドの最後の行がNullReferenceExceptionをスローしていることです。動作に添付しても、この拡張機能が見つかりません。MSDN の例では、ルーティング サービスはコンソール アプリケーションでホストされており、ここでは IIS でホストしようとしています。ここで何かが足りない...
wcf - WCFルーティング-プログラムでフィルターテーブルを正しく追加する方法
WCF 4ルーティングサービスを使用しており、(configを介してではなく)プログラムでサービスを構成する必要があります。私がこれを行うのを見た例はまれですが、次のようにMessageFilterTableを作成します。
しかし、そのメソッドのジェネリックパラメーターはTFilterData(フィルター処理するデータのタイプ)であると想定されていますか?文字列を受け入れる独自のカスタムフィルターがありますが、この方法でフィルターテーブルを作成できますか?
これが機能する場合...ルーティングインフラストラクチャは、渡したリストからクライアントエンドポイントを作成しますか?