問題タブ [wsdualhttpbinding]

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.

0 投票する
2 に答える
1334 参照

wcf - WsDualHttpBinding はコールバック チャネルについてどのように認識していますか?

私には何かが非常に奇妙に思えます。Reflector を使用して WCF の内部を調べようとしましたが、理解するのが難しすぎることを許してください :(.

クライアント A が wsDualHttpBinding でサーバー B の双方向サービスを呼び出すとき、クライアント A はこのようにリクエストのヘッダーにクライアント ベース アドレス (コールバックのアドレス) を含めると考えていました。

.

しかし、 OperationContext.Current.IncomingMessageHeaders.ReplyTo nullを返します...

クライアントチャネルのアドレスを知るためにwsDualHttpBindingはどのようにしていますか????

黒魔術か何かですか?

解決

これは、replyTo アドレスの転送を担当する信​​頼できるセッションです。customBinding のこれらのバインディング要素でこれを確認できます

trustedSession を削除すると、サービスにはコールバック チャネルがなくなります...

0 投票する
2 に答える
4329 参照

wcf - WCF + SSL wsDualHttpBinding または netTcpBinding

セルフホステッド WCF サービスを作成する必要があります。インターネットを介したクライアントとサーバー間の安全な二重接続が必要です。

WCF のドキュメントをいくつか読んだところ、SSL はポイント 2 ポイントのみであるため、netTcpBinding がイントラネット アプリケーションに適していることがわかりました。インターネットでの申し込みであれば、ポイント2ポイントで接続してはいけませんよね?netTcpBindingを使用したトランスポートセキュリティのSSLは適していませんか?

安全な二重インターネット アプリケーションを作成するには、どの組み合わせを使用すればよいでしょうか。どうもありがとうございます。


http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx このチュートリアルでは netTcpBinding とエンドポイント localhost を使用してみました

エンドポイントの localhost を名前ベースの URL に変更し、ルーターのポートを開発用 PC に転送し、Windows ファイアウォールで同じポートを開きます。

クライアント プログラムは、異なるマシンの各 cients プログラムとチャットできますが、コールバック接続は 1 分後に失われます。

また、バインドを wsDualHttpBinding に変更してみました。クライアント プログラムは、同じマシン内の各クライアントとチャットでき、reliableSession の inactivityTimeout 設定でコールバック接続を維持できます。ただし、別のマシンの別のクライアント プログラムはサーバーに参加できません。そのマシンで Windows ファイアウォールをオフにすると、クライアント プログラムは接続できます。

tcp バインドにより、Windows ファイアウォールを使用してサーバーに接続しているクライアント プログラムを有効にできるようです。しかし、コールバック接続が失われました。

wsDualHttpBinding はコールバック接続を維持できます。ただし、Windows ファイアウォールがオンの場合、サーバーに接続できません。

wsDualHttpBinding のように netTcpBinding コールバック接続を維持する方法はありますか?

0 投票する
2 に答える
11309 参照

.net - WCF での WSDualHttpBinding の利点は何ですか?

これまでのところ、デュアル チャネルから取得できる即時の通知を除いて、クライアント ポーリング システムでデュアル チャネルを使用するメリットを実際に提供できる人は誰もいません。他のすべてのポイントは、すぐに通知する必要がない場合、デュアルバインディングが負の価値を提供することを示しています-これに反対する人はいますか?

WSDualHttpBinding を IIS ホステッド サービスで使用する場合と、WCF サービスを呼び出すクライアント ポーリングを使用する場合の利点は、後者でサービスが問題のデータをキャッシュしたと仮定した場合です。

このシナリオは、イベントが発生したときにサービスによってクライアントに通知する必要がある通知タイプのサービス用です。

具体的には、WSDualHttpBinding はポーリングよりもどのような利点がありますか? 例: ネットワーク トラフィックの削減、設計の高速化、保守の容易化、制御の強化 ???

私が理解していることから、WSDualHttpBinding はクライアント ポーリングよりもスケーラブルではありません。編集: Matt が提供したように、タイム クリティカルは二重バインディングの 1 つの理由である可能性があります。

これが私がこれまでに持っているものです:

WSDualHttpBinding

adv: ポーリング タイマーを待たずにすぐに応答を取得できます

dis: WsHttpBinding よりスケーラブルではない

dis: ファイアウォールに優しくない

dis: WSHttpBinding より遅い

コメントに基づいてこれに追加します。間違っていることがあればお知らせください。

入力していただきありがとうございます:-)

0 投票する
1 に答える
1648 参照

wcf - basicHttpBinding および wsDualHttpBinding でホストされる WCF コールバック サービス

wsDualHttpBinding でホストされているコールバック サービスがあります。コールバックを受信するのではなく、データをポーリングするクライアントを追加しようとしています (デモ目的で wince を使用するモバイル デバイスになります)。これを行う最善の方法は何ですか?wsDualHttpBinding でホストされているサービスで NetCFSvcUtil を使用してクライアント プロキシを作成することはできませんが (それは理解しています)、basicHttpBinding でコールバック サービスをホストすることはできません。basicaHttpBinding (クライアントはデータをポーリングします) と wsDualHttpBinding (コールバックはクライアントにデータを通知します) の両方でホストされる同じサービスが本当に必要です。同じデータをホストする 2 つの別個のサービスを作成せずにこれを処理する最善の方法についてのアイデアはありますか?

0 投票する
1 に答える
686 参照

wcf - wsDualHttpBindingがより大きなデータセットで失敗する

wcfサービスでwsDualBindingを使用して、ソフトウェアで双方向通信を処理しています。メソッドを呼び出して顧客リストを取得する場合を除いて、すべてが正常に機能しているようです。サービスでクエリの結果を2730レコードに制限すると、約1〜2秒で結果を取得し、データグリッドに表示できます。結果を2731(もう1つ)に制限すると、次のエラーが発生します。

http:// localhost:8731 / Design_Time_Addresses / Dispatch_Studio_Server / DispatchService /は、構成されたタイムアウト(00:00:59.9990000)内に応答を受信しませんでした。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。これは、サービスがまだ操作を処理しているためか、サービスが応答メッセージを送信できなかったためである可能性があります。(チャネル/プロキシをIContextChannelにキャストし、OperationTimeoutプロパティを設定することにより)操作タイムアウトを増やすことを検討し、サービスがクライアントに接続できることを確認してください。

私の調査では、大規模なデータセットにはストリーミングの方が適していることを読みました。そのため、バッファリングの代わりにストリーミングを使用してbasicHttpBindingエンドポイントを設定しようとしましたが、基本的に同じ結果が得られます。2730レコードは正常に機能しますが、2731レコードでは次のエラーが発生します。

HTTPチャネルを介してデータを送信しているときに、エラー(トランスポート接続からデータを読み取れません:接続が閉じられました。)が発生しました。

2730レコードを大きなデータセットと正確に呼ぶことはしません。これは、この問題を引き起こしている他の何かがあると私に信じさせます。

これが私のクライアント構成です:

これが私のサーバー構成です:

ご覧のとおり、この問題を解決するためにmaxMessageReceivedSizeおよびその他の設定を変更しようとしましたが、役に立ちませんでした。

御時間ありがとうございます。

0 投票する
2 に答える
3312 参照

wpf - wsDualHttpBinding が WPF クライアントでネットワーク外で機能しない

私は WPF と WCF の間に DuplexCommunication を実装しようとしていましたが、ネットワーク内で内部的にテストすると通信がうまく機能し、外部に公開した後にこの外部ネットワークにアクセスしようとすると、Web ブラウザーを介してサービスにアクセスできます。しかし、接続を開こうとすると、WPF クライアントがエラーを出しています。以下は、サーバー側とクライアント側の両方の構成です。サーバ:

クライアント:

サーバー側でdns値を使用して「baseAddresses」と「identity」を指定しようとしましたが、クライアント側でもclientBaseAddressを指定しようとしましたが、それでもネットワーク外では機能しません。

WPF アプリケーションから二重接続を開こうとすると、常にタイムアウト エラーが発生する: エラー: 「00:00:09.4911018 の割り当てられたタイムアウト内で、開く操作が完了しませんでした。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。 ."

構成部分に何か問題があると思いますが、それが何であるかはわかりません。これに関するヘルプは大歓迎です。

ありがとう。

0 投票する
1 に答える
1294 参照

wcf - WCF wsdualhttpBinding カスタム ユーザー名

非常に厄介なエラーが発生しました: 私のシナリオ - wsdualhttpbinding (コールバックのデュアル、新しいメッセージのオンライン更新) を使用して WCF に実装された単純なメッセージ/メール サーバー\クライアント。

すべてのセキュリティ構成はコードで記述されています (*.config はまったくありません)。最初の接続時に、クライアントは次の [System.Security.Cryptography.CryptographicException] = {"Bad Length.\r\n"} を NULL 内部例外とともにスローするため、より深く掘り下げることはできません。サーバー構成:

クライアント構成:

どんな助けでも大歓迎です。ところで、私は WCF を初めて使用するので、基本的な概念が欠けている可能性があります。

0 投票する
3 に答える
5570 参照

wcf - wcfwsdualhttpbindingタイムアウトの問題

私を助けてください!!!

コールバックコントラクトを使用するアプリケーションを構築しようとしています。私のアプリは同じマシン上のクライアントとサーバーの両方で正常に動作しますが、他のマシンからサービスにアクセスしようとすると、例外タイムアウトが発生しました(操作は割り当てられたタイムアウト)クライアントがいくつかの値を読み取り、サーバー上にあるデータベースからサービスをスローします。どこに間違いがあるのか​​わかりません。クライアントを仮想マシンとサービス(およびデータベース)に配置しようとしました。 )実マシン上。

これが私のサーバー設定ファイルです:

私のクライアント設定ファイル:

->

ありがとうございました。

これらはコントラクトです。publicinterfaceITrainServiceCallBack{[OperationContract(IsOneWay = true)] void OnTrainChangeState(TrainData train); }

メソッドの実装:

システムを使用する; System.Collections.Genericを使用します。System.Linqを使用します。System.Runtime.Serializationを使用します。System.ServiceModelを使用します。System.Textを使用します。System.Dataを使用します。

namespace WCFandEFService {//注:[リファクタリング]メニューの[名前の変更]コマンドを使用して、コードファイルと構成ファイルの両方でクラス名「ProductService」を一緒に変更できます。// [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]

}

0 投票する
2 に答える
2517 参照

wcf - デュプレックスWCFサービスチャネルが継続的に有効になっている(WSDualHttpBinding)

アーキテクチャ:

  1. wcfデュプレックスサービスを含むコンソールアプリケーション。
  2. Windowsアプリのコンシューマー。すべてのアプリはDuplexにサブスクライブしているため、サブスクライバーのリストがあり、一部のイベントが発生した場合に備えて、サービスは一部のアプリに通知を送信する必要があります。

問題:

  1. サービスがクライアントに通知を送信できるように、接続を継続的に維持する方法は?

このバインディングには2つのチャネルがあることがわかりました。サービスからのチャネル(コールバック用)を永続的に開く必要があります。

ありがとう;

0 投票する
1 に答える
824 参照

wcf - WSDualHttpBinding を使用する WCF クライアントで FaultException をキャッチできない

カスタム UserNamePasswordValidator を備えた WCF サーバーがあります。

クライアント側で、間違った認証情報をプロキシに追加して関数を呼び出します

サーバーのデバッガーで、FaultException がスローされていることがわかります。ただし、クライアントがこの例外を受け取ることはありません。クライアント側で TimeoutException になります。

正しい資格情報を使用すると、サーバー側の関数が呼び出され、すべてが正常に機能するため、wcf は正しく機能します。

しかし、クライアント側で資格情報が間違っていることを認識できるように、FaultException がクライアントにスローされるようにするには、どうすればよいでしょうか?

更新: WSHttpBinding を使用すると、MessageSecurityException をキャッチできます。しかし、WSDualHttpBinding とデュアル チャネルを使用していると、タイムアウトが発生します。