問題タブ [endpoints]
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 サービスの認証方法
現在、WCF SOAP サービスを構築しています。もちろん、サービスで何らかの認証が必要になります。
この非常に役立つブログ投稿を読むと、組み込みの認証ポイントを使用するには、エンドポイントでwsHttp
バインディングを使用する必要があることがわかります。
これは、ユーザーが WCF によって公開されたメタデータ (基本的には、C# で記述された Web サービス参照を含むクライアントのようなもの) に基づいてクライアントを介してサービスと通信することを保証できれば問題ありません。ただし、これを保証することはできません。
ユーザーが生の (暗号化されていない) XML だけで通信できるようにする必要があります。
だから、質問:
wsHttp
バインディングは未加工の XML 入力を引き続き許可しますか?- そうでない場合、私はより賢明でしょうか
- 2 つの別個の認証ポイントを実装しますか? 1 つは raw XML 入力用、もう 1 つは暗号化された入力用 または
wsHttp
生の XML 入力と共有されるメソッド内検証にフォールバックする入力を許可しますか?
- ユーザーが未加工の XML 要求内で資格情報を渡すことを許可するのは賢明ですか?
編集:元の投稿で何かを誤解したり誤解したりしたように聞こえるので、ここで「生のXML」の意味を明確にします。
生の XML とは、SOAP パケットと付随する HTTP ヘッダーだけを意味します。soapUI や Fiddler から送信する場合もあります。私が理解しているように、バインディングを介したメッセージはwsHttp
、クライアントが WSDL から (たとえば C# で) 生成されるときに暗号化されます。
そうでない場合、クライアントを介してリクエストを実行するのと同じ種類の資格情報を生の XML (より適切な用語が必要なため) リクエストに添付するにはどうすればよいでしょうか? それらは HTTP ヘッダーとして添付されていますか? SOAPエンベロープのXML要素?
c# - プログラムで複数のSOAPエンドポイントに接続する方法を提供する必要があります
与えられた:私が接続する必要があるいくつかのウェブメソッドを持っているページを持つ
複数のクライアント。Service.asmx
どのクライアントに接続する必要があるかを決定するために入力を受け取るユーティリティ関数。これは私がこれまでに持っているものです:
このメソッドはエラーなしで完了します(注:EndPointIdentityが何であるかわからないので、そこに入力する文字列を思いついただけです...これを別の場所の構成設定に含めるべきかどうかわかりませんか?)
問題:
リモートメソッドを呼び出そうとすると、例外がスローされ、あまり説明的ではありません(A NullReferenceException
)。コードは次のとおりです。
スタックトレース:
wcf - WCFサービスの複数のエンドポイントの利点
私はWCFを初めて使用します。wcfWebサービスに複数のエンドポイントを作成する利点を教えてください。
また、IISでそのようなサービスをホストする方法と、wcfクライアントが提供された正確なエンドポイントに接続する方法の例を教えてください。
ありがとう。
wcf - WCF Web サービスを使用する VB6 ソフトウェア。App.config のエンドポイント。エラー VB6 には App.config がありません
VB6で構築されたEPOSシステムがあります。クライアントは Microsoft Dynamics AX を CRM システムとして使用しています。サード パーティがクライアント用の AX 実装を作成し、EPOS と AX CRM の間でデータを同期するために使用する必要がある一連の WCF Web サービスを公開しました。VB6 では WCF サービスの呼び出しに問題があることがわかっていたので、EPOS と AX CRM 間の通信を処理する次のコンポーネントを作成しました。
呼び出す VB6 EPOS -->
1) 呼び出す VB6 DLL ラッパー... -->
2) 呼び出す .NET(3.5) COM Callable Proxy DLL ラッパー... -->
3) .NET(3.5) Web サービス ハンドラ(Web サービスが実際に呼び出される場所) -->
Microsoft Dynamics AX CRM。
テスト コンソール アプリがコンポーネント 2 を呼び出すように、VB6 からの呼び出しをシミュレートしてデバッグを支援するために、Vb.NET でテスト コンソール アプリを作成しました。
これを行っている間、次の例外が発生しました:-
"(servicemodel クライアント構成セクションでコントラクト 'X' を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素で見つからなかったためである可能性があります。 )"
グーグルで検索したところ、バインディングとエンドポイントのセクションをコンポーネント 3 の app.config からテスト コンソール アプリの新しい app.config にコピーする必要があることがわかりました。私は WCF を知らず、現時点では時間もありません。なぜこれがこのエラーを修正したのかを理解するまで、実際にそれを学びます。
ただし、VB6 EPOS からサービスを呼び出そうとすると、このエラーが再び表示されます。したがって、コンポーネント 2 はチェーン内の最初の .NET(3.5) コンポーネントであるため、エンドポイント宣言が必要な場所であると考えて、コンポーネント 2 に app.config を追加しましたが、いいえ。エラーはまだポップアップしています。
誰にもアイデアはありますか?シンプルトンのためにこれに光を当てることができるプログラミングヒーローはいますか??? EPOS を書き直さない理由を聞かないでください。私達はします。まだです。そこには 300 万行を超えるスパゲッティ コードがあり、私は 8 か月しか取り組んでいません!!!
余談ですが、このシナリオは OOP の黄金律の 1 つ、つまりカプセル化に違反していませんか。コンポーネント 3 が WCF サービスにアクセスするために使用するエンドポイントを VB6 EPOS が知る必要があるのはなぜですか?
java - 1 つのエンドポイントで 2 つの ws 実装を実行することは可能ですか?
いくつかの名前空間を共有する 2 つの Web サービス実装があります (同じオブジェクトを使用 - 例ではオブジェクト C)。公開したいので
1) クライアント側の共有生成オブジェクトが存在します (同じオブジェクト C スタブ)
2) 1 つのポートでブース Web サービスを実行し、次のように URL を変更するだけでそれらにアクセスできます。
http://localhost:6690/WS/A?wsdl
http://localhost:6690/WS/B?wsdl
//------------------------------------------------ ----------------
//------------------------------------------------ ----------------
wcf - ベース アドレスが既に指定されている場合の WCF サービス エンドポイントの相対アドレス
私も WCF を学んでおり、Web サービスは初めてで、非常に基本的な質問があります。私を甘やかしてください!私が使用している本の例 (Learning WCF) では、サービスのベース アドレス (new Uri("http://localhost:8000/HelloIndigo)) を指定する ServiceHost インスタンスを作成しました。サービスを実装するライブラリ. 次に、AddServiceEndpoint() の呼び出しが最後の引数である「HelloIndigoService」として指定された相対アドレスで行われます. 後者は、実際にサービス コントラクトを実装していますか? (問題のクラスにはその名前が付けられています。) しかし、その引数は「アドレス」と呼ばれており、非常に混乱しています。助けてください。
wcf - Azureカスタムエンドポイント
Azureで複数のWCFRESTfulアプリケーションを使用しています。1つはXbox360のユーザー用で、もう1つはPS3のユーザー用です。両方の基盤となるアーキテクチャはわずかに異なる必要があるため、エンドポイントを1つの役割に結合することはできません。
現在、両方の役割は、1つのホステッドサービスでの1つのデプロイメントの下にあります。ただし、ロールにアクセスするときに、カスタムエンドポイントにロールを配置することは可能ですか?エンドポイント内のカスタムフォルダに拡張できますか?
今、私はWCFRESTアプリにアクセスします
http://[servicename].cloudapp.net/[template]
しかし、私はそれらを次のように分離できるようにしたいと思います
http://[servicename].cloudapp.net/[gamename]/ps3/[template]
http://[servicename].cloudapp.net/[gamename]/360/[template]
ここで、[gamename] /[env]/は別の役割を指示します。
現在のセットアップ方法では、Xbox360の役割がさまざまなサービスで実行されている場合でも、すべてのリクエストがPS3エンドポイントに送信されます。
私の質問は、サービスのc#コードを変更せずに、ServiceDefinition.csdefまたはServiceConfiguration.Cloud.cscfgファイルを編集してこれを行うことができるかどうかです。
binding - 2 つのサイトを持つ Azure Web ロールは、2 つの異なるエンドポイントにバインドできません
1 つの Azure Web ロール内に、2 つのエンドポイントがあります。2 つのサイトがあり、それぞれが異なるエンドポイントにバインドされています。このような:
これをデバッガで実行すると、次のエラーが表示されます
「ロール インスタンスの URL "http://127.255.0.0:82" の IIS ワーカー プロセスにデバッガーをアタッチする際にエラーが発生しました ....
わかりました。IIS マネージャを見ると、配置が見つかりました。ブラウズでhttp://127.255.0.0:82/をクリックします。それはうまくいきます。もう一方を参照します。サイトも出てきます。
ただし、エラーを確認すると、デバッガーが停止し、デプロイが削除されます。
この種の構成は許可されていませんか? むしろ仮想ディレクトリを避けたいです。同じドメインで、http または https に基づいて 2 つの非常に異なる Web サイトを実行したいだけです。何が欠けていますか?
c# - WCFRestServiceにないエンドポイントのカスタマイズされたメッセージ
WCFを使用してReSTfulサービスを作成しています。私のOperationContractは次のようになります。
したがって、http://example.com/Service1.svc/GetItemList/myToken/myValueを呼び出すと、サービスが呼び出されます。
ここで、ユーザーがhttp://example.com/Service1.svc/GetItemList/myToken/または http://example.com/を呼び出すときに、「メソッド/エンドポイントが存在しません」というリンクを指定するデフォルトのメソッドを記述します 。 Service1.svc / GetItemList /myValue/または http://example.com/Service1.svc/GetItemList/
コードにそれを実装するにはどうすればよいですか?
今私がしていることは次のようなものです:
そして、この関数では、「メソッドが存在しません」という文字列を返すだけです。
もっと良い方法はありますか?サービスに送信されるURLのエラーメッセージをカスタマイズできますか?たとえば、私のサービスに送信される、存在しないすべてのURLリクエストに共通のメッセージですか?
contact - Microsoft Lync で ContactEndpointCollection にアクセスしようとしています
特定の連絡先が持つ可能性のあるすべてのエンドポイントにアクセスして表示できるようにしようとしていますが、ドキュメントでそのようなコレクションを見つけることができた唯一の場所は ContactEndpointCollection です。ただし、すべての検索にもかかわらず、特定の連絡先からこのコレクションを取得する方法が見つからないようです。
私の質問は次のとおりです。Contact が与えられた場合、ContactEndpointCollection を取得するにはどうすればよいですか?