問題タブ [wcf-endpoint]
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# - クライアントエンドポイント構成'*'が1エンドポイント、WCF、モノラルで見つかりませんでした
やあみんな、
Monoを使用してUbuntuホストから仮想マシン(Windows 7)でホストされているWebサービスにアクセスしようとしています。
wdslファイルをインポートして、サービス参照を生成できます。Webサービスに正しくアクセスしている他の動作中のクライアントからApp.configをコピーしました。
Systemを使用してWebサービスに接続しようとすると;
エラーが発生します:
私のApp.configファイルは次のようになります。
Linuxを使用してこれを機能させた人はいますか?
asp.net-mvc - DispatchMessageInspector のメッセージ ヘッダーから取得した情報を ServiceContract に渡す方法は?
コントローラーからサービスレイヤーにユーザー情報を渡そうとしています。
IClientMessageInspectors
そしてIDispatchMessageInspectors
、最も可能性の高い解決策のようです。
HTTP ユーザー エージェント メッセージ インスペクターの構築 と WCF メッセージ インスペクターの作成を行った後、メッセージ ヘッダーに情報を追加する方法とそれを読み取る方法についてかなりのアイデアが得られました。
私が理解できないのはこれです:
でユーザー情報を取得するにはどうすればよい
IClientMessageInspector
ですか?コントローラの内部で、私は訴えてい
User.Identity.Name
ました。ただし、User オブジェクトはメッセージ インスペクタでは使用できません。この情報をメッセージ インスペクターに含める 1 つの方法は、コンストラクターに渡すことですが、MessageInspector オブジェクトを明示的に作成することはないため、ユーザー情報をコンストラクターに渡すにはどうすればよいでしょうか。編集:最初の質問に対する答えが見つかりました。ユーザー情報は System.Threading.Thread.CurrentPrincipal.Identity.Name で取得できます。まだ第二部にこだわっています。
サービスメソッド内でユーザー情報を利用できるようにする方法は?
ヘッダーを調べて、DispatchMessageInspector のメッセージ ヘッダーからユーザー情報をフェッチすることはできますが、操作コントラクトの 1 つでこの情報を利用できるようにするにはどうすればよいでしょうか?
wcf - WCF でサービス参照を使用してすべてのエンドポイントを使用するにはどうすればよいですか?
複数のバインディングを使用してサービスを記述します。また、2 つのベースアドレスを使用し、tcp 用に 3 つのエンドポイントを作成し、http 用に 3 つのエンドポイントを作成します。クライアント アプリでサービス参照を使用してすべてのエンドポイントを使用するにはどうすればよいですか?サービスにベース アドレスを追加するだけで十分ですか?参照?
wcf - 名前を持つ複数のエンドポイントがある場合、サービス参照で WCF サービスを使用する方法
非常に具体的な質問があります。1 つの WCF サービスを作成し、その名前のエンドポイントが複数ある場合、ブラウザを使用してアクセスするにはどうすればよいですか? また、 Add Service Reference を介してクライアントアプリケーションでアクセスするにはどうすればよいですか?
私の設定コードのように:
今、私がそれを使用してそれにアクセスしようとしたとき
それは私にページ/リソースが見つかりませんIE標準エラーメッセージを与えます...同時に、このタイプのURLをクライアントアプリケーションのサービス参照として追加する方法を知りたいですか?
wcf - プログラムでエンドポイントを追加する
クライアントアプリケーションで接続しているWCFサービスがあります。設定ファイルで以下を使用しています。
コードでは、このサービスで次のようにAPIを呼び出しています。
ここで、エンドポイントをポーグラマティックに定義したいと思います。どうすればそれができますか?エンドポイントを動的に追加するには、TestServiceClientインスタンスにコードを配置する必要があると考えていたため、構成ファイルからセクションをコメントアウトしましたが、TestServiceClientがインスタンス化された時点で次の例外がスローされます。
ServiceModelクライアント構成セクションでコントラクト'TestService.IService'を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素で見つからなかったことが原因である可能性があります。
どうすればこれを達成できますか?また、エンドポイントをプログラムで追加するためのコード例に関するポイントもありがたいです。
wcf - WCF: コントラクトがサービスではなくエンドポイントにあるのはなぜですか?
エンドポイント コントラクトを実際に「取得」しようとしています:
異なるバインディングをサポートするために異なるエンドポイントを提供することは理解していますが、サービスに対して n 個のエンドポイントを定義し、異なるコントラクトを使用するのはいつですか? ほとんどの場合 (IMetadataExchange を除く)、エンドポイント コントラクトはプロトコルに関係なく同じですよね?
ほとんどの場合、コントラクトがすべてのエンドポイントで同じである場合、各エンドポイントではなく親サービスでサービス コントラクトを定義するのは単純すぎたでしょうか (そしてその理由は?) (面倒/繰り返しのようです)。必要に応じてエンドポイントをオーバーライドします (例: IMetadataExchange)。
夜眠れない小さな質問を手伝ってくれてありがとう;-)
c# - WCF サービスからメタデータを取得中にエラーが発生しました
非常に単純な WCF サービスを作成しましたが、何らかの理由でsvcutil
. 次のコマンドを使用しています。
次の出力が得られます。
このエラーは、MEX エンドポイントがないことを示しているようです。実際、URL をブラウザに入力すると、XML がすぐに表示されます。
ここに私のapp.configがあります:
c# - 共通のパブリック メソッドを使用して 2 つのインターフェイス エンドポイントを公開する - 操作は既にエクスポートされているメッセージ要素を参照します。
セキュリティで保護されていないエンドポイントを自己ホスト型サービスに追加しようとしていたため、基本的に、セッションを使用するインターフェイスとセッションを使用しないインターフェイスが 1 つあります。どちらも同じクラスで実装されています。これが私のサーバー構成ファイルの一部です:
セッションなしのインターフェース:
セッションとのインターフェース:
ブラウザに :http://localhost/PT6/DataServices/ を入力すると、以下が返されます。
PT.DataServices.WCFService.IPTDataServicesNoSessions.GetData 操作は、PT.DataServices.WCFService.IPTDataServices.GetData 操作から既にエクスポートされているメッセージ要素 [http://tempuri.org/:GetData] を参照します。
動的に使用されているエンドポイントに応じて、すべてのクライアントが異なるメソッド名を使用するように変更したくありません... 2 つのインターフェイスのそれぞれに同じメソッドを使用しても問題ないことを WCF に伝えるにはどうすればよいですか?
c# - SSL/TLS を使用する/使用しないクライアントで wcf エンドポイントを検証するためのベスト プラクティス
SSL/TLS またはエンドポイントの有無にかかわらず、次のような wcf sercue のすべての例外をキャッチしようとしました。
メソッドを呼び出さずに wcf サービスが利用可能かどうかを確認できますか (Open() を試しましたが、まったく機能しませんでした)。WCF サービスから例外のすべてのケースをキャッチできるかどうかわかりませんか? 私の目的は、クライアントが SSL/TSL またはエンドポイントなしで wcf 例外を取得した場合、小さなユーティリティ コンソールを実行してクライアントの app.config を修正し、wcf エンドポイントと . あなたの提案が本当に必要です。ありがとう
wcf - ワークフローでエンドポイント バインディングを動的に解決する
MSDN でこの質問と同じ問題がありますが、単一のワークフロー インスタンスが同時に実行されているときに、Roman Kiss のソリューションがエンドポイント アドレスを正しく置き換えるかどうかがまだはっきりしないため、解決策がわかりません。
内部Send
アクティビティが特定のエンドポイント アドレスを持つ 1 つのスレッドによって実行されるようにスケジュールされている場合、このアドレスは、別のエンドポイント アドレスで同じアクティビティをスケジュールする別のスレッドによってオーバーライドされませんか? 間違っている場合は訂正してください。ただし、現在のワークフロー実行コンテキストが何であれ、バインドされSend.Endpoint
ているのとは対照的に、通常のプロパティであるため、そうなると思います。InArgument<Endpoint>
誰かがこれにもっと光を当てることができますか?
アップデート
Roman Kiss が提供するソリューションをテストしたところ、私のシナリオでは期待どおりに機能しないことがわかりました。Execute
メソッドを次のように変更しました。
このテストを実行しました:
私が得ている結果は次のとおりです。
http://localhost/1 => http://localhost/1
http://localhost/2 => http://localhost/1
質問は未解決のままです: 実行時にSend
アクティビティのエンドポイント アドレスを動的に割り当てるにはどうすればよいですか?