問題タブ [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.
.net - 2 つのエンドポイント アドレスが同じかどうかを確認するにはどうすればよいですか?
私のプログラムは、いくつかのメソッドを公開し、複数のクライアントを持つ WCF サービスです。クライアントのリストをデータベースに保存します。一部のメソッドでは、データベースから呼び出し元のデータを照会する必要があります。この質問 サービスはどのようにして発信者を知ることができますか? リンクされた回答Get the Client's Address in WCFは、発信者の IP を取得する方法を示しています。ただし、通常、クライアント テーブルのアドレス フィールドには IP がありませんが、次のようなものです。
有効なエンドポイント アドレスです。リンクされた回答でソリューションを使用し、発信者の IP を取得したとしましょう (たとえばhttp://192.80.212.21:80/
)。ただし、データベースでは、クライアントはhttp://computerName:80/
データベースから対応するクライアントのエントリを取得できるように、これら 2 つのアドレスが同じであることを確認するにはどうすればよいですか?
クライアントの数は非常に少ないため、データベース内のすべての行を反復することによるパフォーマンスの問題は無視できます。
c# - 複数のサービス契約を持つ単一のエンドポイント
単一のエンドポイントを持つが複数のサービス コントラクトを持つ WCF Web サービスを作成するにはどうすればよいですか?
例:
IInternetService が私のメインの Web サービスであり、その中に IwiredService と IWirelessService を実装したいと考えていますが、それらのクラスで実装したいと考えています。これは可能ですか? どうすればこの問題を解決できますか?
c# - CustomPeerResolverService から MeshEntry/P2P エンドポイントをどのようにキャプチャして保存しますか?
OperationContext.Current.GetCallbackChannel<> を介してクライアント コールバック チャネルをキャプチャできるのとほぼ同じ方法で、MeshEntry をキャプチャして保存することは可能ですか?
CustomPeerResolverService にリストされている MeshEntry を確認できますが、ピアが特定のピアを識別してターゲットにすることが可能かどうかはわかりません。サーバーに各クライアントへのコールバック チャネルを保持してもらいたいのですが、MeshEntry などをクライアント クラスのプロパティとして保存し、CallbackChannel をデシリアライズしたままにすることは可能ですか。ピアがこのチャネルを介して別のピアに連絡することを望んでいます。
ありがとう
wcf - Castle Windsor WcfFacility を使用してクライアント エンドポイントを作成する
3 つのアセンブリを作成しました。Web サイト、WCF サービス、およびサービスが実装するインターフェイスを保持するコントラクト アセンブリ。Castle Windsor を使用してクライアント (Web サイト) でサービスを作成し、使用するサービスごとに Web サイトの web.config にエンドポイントを設定する必要がないようにしたいと考えています。
コントラクト アセンブリを見て、名前空間内のすべてのサービス インターフェイスを取得したいと考えています。現在、すべてのサービスについて、コンポーネントをコンテナに登録するときに次のようなものがあります。
私のweb.configにはセットアップコードがあります。
結局、ほとんど同じように見える複数のサービス エンドポイントができてしまい、クライアント マシンに展開するときに、ベース URL がすべて同じであっても、すべてのエンドポイントのアドレスを設定する必要があります。
コードを介して取得した web.config にベース URL を設定し、コントラクト アセンブリのリフレクションを使用してサービスをコンテナーに登録したいと考えています。上記の構成ファイルにある特殊なエンドポイントの動作が必要です。
どこから始めますか?WcfFacility は良さそうですが、ドコはちょっと物足りない…
c# - appharborでホストされているWCFWebサービスを解決できません
appharbor.comでWCFWebサービスをホストしようとしていますが、ローカルでホストするとサービスは期待どおりに応答しますが、appharborでビルドしてホストすると、404しか返されません。
サービスはコンソールアプリケーションで実行されています。
app.configは次のようになります。
値「http:// localhost」を含むベースアドレスを使用すると、Webサービスのgetメソッド、メタデータ、ヘルプなどにアクセスできます。しかし、それをachiever.apphb.comに変更してビルドすると、http ://achiever.apphb.com/AchievementService/またはhttp://achiever.apphb.com/で404しか受信しません。
私が試したのは、アドレスのさまざまな構成です。appharborでビルドされたlocalhostを試しましたが、同じ結果になりました。例も検索しましたが、この問題を解決するのに役立つものは見つかりませんでした。
サービスは展開されており、テストは含まれていません。appharborからのメモがあります。
wcf - WCF サービスが IIS でホストされている場合、エンドポイントのリッスン エラーはありません。
SSL 経由で WebService を使用する MVC ページがあります。証明書がインストールされ、アプリケーションの実行中に証明書を検出できるようになります。
問題は、ホストされている MVC ページを呼び出そうとするときに、このコードがローカル マシンで完全に正常に動作することです。
しかし、サーバーでホストされている MVC ページが呼び出されると、エラーがスローされます。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。
問題は実際にアプリ プール ID にあることがわかりました。資格情報で実行するように変更すると、問題は解決しました。しかし、私は本番環境でこれを行うことはできません。
IIS App プールの Identity : Network Service で動作させる必要があります。
ネットワークサービスに winhttpcertcfg を使用して証明書に許可を与えようとしましたが、それも役に立ちませんでした。
何が欠けているのかわからない。
前もって感謝します。
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リクエストに共通のメッセージですか?
wcf - 圧縮用の WCF カスタム バインド
Microsoft による圧縮のサンプルに従います。エンコーダー、エンコーダー ファクトリ、バインディング要素をソリューションに追加しました。サンプルとの違いは、構成ファイル (要件) を介してエンドポイントを登録せず、代わりにカスタムの Service Host Factory を使用することです。
サービス ホスト:
だから私が試したのは、エンドポイントにカスタムバインディングを追加することですが、そのエンドポイントをバインディングに登録するには、を使用AddServiceEndpoint
する必要があるように見えますが、それには未知のインターフェースが必要です。serviceType が実装するすべてのインターフェースを取得して を実行できることはわかっていますが、getInterfaces()[0]
それは安全でないアプローチのようです。エンドポイントをカスタムバインディングに登録し、インターフェースがわからない方法はありますか、それとももっと良い方法がありますか。
カスタムバインディングを追加する私の試み:
xml - WCF-クライアントに返品形式を選択させます
私は自分でいくつかのWCFを学ぼうとしています。私はC#/ ASP.netの知識を持っていますが、WCFは初めてです。学習中に、VisualStudio2010を使用していくつかのアプリを開発しています。
ユーザーが新しいイベントを作成/削除/編集できるTODO/タスクマネージャーのバックエンドとして機能する小さなWebサービスを開発しました。それはすべて非常にシンプルで基本的です。
私の質問は次のとおりです。
- 新しい操作コントラクトを作成せずに、クライアントが希望する戻り形式(xml / json / rdfなど)を選択できるようにする方法はありますか?
- Webサービスが私に送信する正確なメッセージをクライアントで確認するにはどうすればよいですか(たとえば、json表現かxmlメッセージかを確認できます)。
c# - セルフホステッド WCF サービスの複数の http ベースアドレス?
1 つの http エンドポイントを持つ WCF サービスを使用しています。別のバインディングを持つ別の http エンドポイント アドレスを追加したいと考えています。このサービスは IIS でホストされていないため、multipleSiteBindingsEnabled を設定しても意味がありません。
このようなことを試みています。