問題タブ [duplex]

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 に答える
2812 参照

wcf - ファイアウォールをバイパスするための WCF 双方向 HTTP 通信

WCF を使用して、クライアントのポートを開かずに双方向通信を有効にしたいと考えています。

通信するためにポートを開く必要のない P2P アプリケーション (teamviewer/logmein に類似) のようなものを開発しています。

クライアントでポートを開く必要なく、HTTP/HTTPS を介して双方向通信を行うにはどうすればよいですか?

注:ポート80はサーバーで開くことができます...それについては問題ありません。

ありがとう

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

wcf - WCFデュプレックスセッションが途中で閉じられた場合の通知方法

net.tcpおよびDuplexコールバックを使用したWCFでのパブリッシュ/サブスクライブシナリオがあります。サービスに加入しているクライアントがたくさんありますが、これは問題なく機能します。ただし、サブスクライブを解除せずにクライアントが閉じる場合があります(クライアントコンピューターがスリープ状態になる、コンピューターがクラッシュする、ネットワーク接続が中止されるなど)。これにより、コールバックリストを介してコールバックすると例外がスローされます。

これで、例外を確実にキャッチして、問題のあるコールバックを削除できますが、これは私にとっては例外シナリオのようではなく、さらに「予期される動作」に沿ったもののようです。

リストからコールバックを削除できるように通知する接続の終了時に発生するイベントはありますか?これはHTTPではなくnet.tcpであるため、接続状態を知る必要があると考えてください。

明らかに、フレームワークは接続が閉じられて破棄されたことを認識しています。これは、例外が「破棄されたオブジェクトを呼び出そうとする」という方針に沿ったものであるためです。

編集:

これは長期にわたるトランザクションではないことを指摘しておく必要があります。これは、パブリッシュ/サブスクライブのシナリオでは長時間実行される接続です。基本的に、コールバックは、一時的なサブスクライバーにさまざまなイベントが発生したときに通知するために使用されます。各イベントは分離されており、長時間実行されません。

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

wcf - Silverlight 3.0でのwcf pollingduplex接続の制限

メッセージ サービス用の Silverlight アプリケーションを作成しました。私の問題は、10接続後にSilverlightアプリケーションが切断されることです。しかし、私はそれを無制限または数千にしたいです。私はこの問題に多くの時間を費やしてきました。私のアプリケーションに関するいくつかのポイント:

  1. Silverlight プロジェクト、Web プロジェクト、wcf サービス プロジェクトのような 3 つのプロジェクトをビルドしました。
  2. we.bconfigで構成するwcf.でPollingDuplexHttpBindingを使用しています。
  3. Silverlight プロジェクトでは、サービス参照を追加し、pollingduplex バインディングを使用してサービス オブジェクトを作成しました。
  4. 次のような wcf サービス プロジェクトの web.config を構成しました。

  5. このプロジェクトをiis6サーバー2003サーバーでテストしましたが、問題は同じです。

この問題を解決するのを手伝ってください。

ありがとう

0 投票する
0 に答える
846 参照

wcf - Windows フォームで WCF Duplex サービスを使用する

Silverlight で正常に動作するwcf二重サービスがあります。しかし、同じサービスが Windows フォームで使用したいと考えています。それはどのように可能ですか。私のコードは次のとおりです。

それは私にエラーを与えます:

バインディング 'CustomBinding' は、チャネル タイプの作成をサポートしていません。これは多くの場合、CustomBinding の BindingElements が正しくスタックされていないか、間違った順序でスタックされていることを示しています。スタックの一番下にトランスポートが必要です。BindingElements の推奨される順序は、TransactionFlow、ReliableSession、Security、CompositeDuplex、OneWay、StreamSecurity、MessageEncoding、Transpor です。

WCFWindows フォームで双方向サービスを使用する方法のサンプル コードを提供してください。

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

c# - 単純な C# 全二重 TCP/IP ストリーム ソケット接続を作成する方法は?

単純な C# 全二重 TCP/IP ストリーム ソケット接続を作成する方法は?

私が必要なものは何?私は欲しい -

  • オープンソース ライブラリ
  • チュートリアル
  • ブログ投稿/記事

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

wcf - Duplex WCF + COM オブジェクトの静的コレクション

元のソースがない特定の COM オブジェクトの機能を公開する WCF サービスを構築しようとしています。コールバック (IAgent) を介して配信される特定の各インスタンスに関連付けられたイベントがあるため、各クライアントが独自のインスタンスを持つように、双方向バインディングを使用しています。最初のアクションの後、サービスが 2 番目のアクションのロックでブロックされるため、デッドロックか何かがあるようです。これらのカスタム STA 属性と操作の動作を実装しようとしました ( http://devlicio.us/blogs/scott_seely/archive/2009/07/17/calling-an-sta-com-object-from-a-wcf-operation. aspx ) しかし、私の OperationContext.Current は常に null です。どんなアドバイスでも大歓迎です。

サービス

コレクション:

最初のアクション:

2 番目のアクション:

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

wcf - コールバックの使用時に WCF 二重チャネルが閉じられる

私の WCF サービスは netTcpBinding を使用し、コールバック オブジェクトを持っています。

複数の同時クライアントにサービスを提供し、セッションを維持する必要があるため、サービスは次のように装飾されています

スレッドのデッドロックを回避するために、コールバック クラスは次のように装飾されています。

SynchronizationContextUIスレッドでメソッドを実行するために使用します。

問題は、チャネルが理由もなく閉じられる場合があることです (ICommunicationObject.Closingイベントが発生します)。その後、後続のサービス呼び出しで例外が発生します。

トレース ファイルを見ると、最後のメッセージはコールバック コールですが、コールバック メソッドは呼び出されません。例外はありません。

いくつかのデバッグの後、これは同期操作の途中でコールバック呼び出しが行われた場合にのみ発生することがわかりました。手順は次のとおりです。

  1. Aを使用したサービス メソッドへの呼び出しIsOneWay=true
  2. Bを使用したサービス メソッドへの呼び出しIsOneWay=false
  3. Aコールバック メソッドを呼び出しますが、Bまだ実行中です。

コールバックにはUseSynchronizationContext=false.

単純なシナリオでは問題を再現できませんでした。単純なプロジェクトでこれらの手順を実行すると、正常に実行されます。

何が起こっているのか、または問題を特定する方法について何か考えはありますか?

0 投票する
10 に答える
73518 参照

c# - スキーム net.tcp に一致するベース アドレスが見つかりませんでした

デュプレックス モード チャネルを設定しようとしているときに、ファイル転送サービスを basicHttpBinding から netTcpBinding に移動しました。net.tcp ポート共有サービスも開始しました。

私は現在開発中で、アプリを開発サーバーに移動するまで、XP ボックスで自己ホストしています。そのため、今のところ IIS にアクセスできません。

私のサービスをそのように構成した後:

そして、私のバインディングは次のとおりです。

SVC ファイルを正しく参照すると、次のエラーが表示されます。

NetTcpBinding をバインドするエンドポイントのスキーム net.tcp に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [http] です。

オンラインで読むと、この問題を解決するには、net.tcp バインディングを IIS のアプリケーションのバインディングに追加する必要があることがわかります。しかし、セルフホスティングで IIS にアクセスできない場合はどうすればよいでしょうか?? ところで、これを読んで IIS を「持っている」場合は、次の手順を実行します。IIS で仮想ディレクトリ/アプリケーションを右クリック -> アプリケーションの管理 -> 詳細設定。そして、Enabled Protocols 部分に net.tcp を追加します。

何か案は?


更新: 動作していると思っていましたが、まだ動作していません。これが私が今持っているものです:「スキームnet.tcpに一致するベースアドレスが見つかりませんでした」というエラーがまだ発生しています。あなたの提案を反映するために、すべてのベース アドレスを変更しました。これが私が今持っているものです:

「net.tcp://localhost:2544」と「net.tcp://localhost:8001」の両方でこれを試しました。ファイアウォール設定に何かを追加 (許可) する必要がありますか? 他の提案はありますか?

App.config ファイル内の filetransferservice の mexTcpBinding は次のとおりです。

Web アプリで FileTransferServiceClient を参照できません。

再度、感謝します。

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

wcf - デュプレックス チャネルで障害を送信するにはどうすればよいですか?

クライアントとサーバーは二重モードで通信します。クライアントには、コントラクト コールバックとしてユニバーサル サービス (Action="*") があります。

サーバーがクライアントに障害を送信できるようにしたいと思います。

どのようにできるのか ?