問題タブ [duplex-channel]

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 投票する
1 に答える
223 参照

c# - メンバーにコールバック実装がある場合にメンバーを呼び出す方法

下記のコールバック実装を持つメソッドを持つサービスオブジェクトがあります

DuplexChannelfactory を作成し、クライアントでサービス オブジェクトを取得しました。ここで、サービス オブジェクトを使用して、Type を Client Side として取得します。

クライアントに IServiceOneCallback メソッドを実装しました

以下に示すように、メソッド GetMacName() を呼び出しています。

これは失敗しています...どこが間違っていますか

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

wcf - WCF Duplex nettcp コールバックが機能しない

環境

物理マシン A でコンソールとして実行されている WCF サービス (NET:TCP | Reliable | SecurityEnabled) があります。

20 ~ 30 の .NET クライアント アプリケーション (Winforms) が Citrix 経由で公開されているため、サーバーとは別の 1 台の物理マシンで再度ホストされます。

問題

アプリケーションの構造は、 Juval Lowyによるhttp://msdn.microsoft.com/en-us/magazine/cc163537.aspxで説明されているのと同じパターンに従います。

問題は、サーバー側ではエラーなしでコールバックを呼び出すことができますが、クライアントはそれを受信しません。60 秒以内にコールバックが呼び出されない場合、再度サブスクライブを試行するコードがあります。サーバーで Subscribe API を呼び出して新しい接続を開くという副作用があります。一定期間にわたって、サーバー上で多数の TCP 接続が開いていることがわかります。エラーはありませんが、クライアント コールバックは呼び出されません。

追加情報

次のエラーがスローされることがあります。

00:01:00 の割り当てられたタイムアウト内にメッセージを転送できませんでした。信頼できるチャネルの転送ウィンドウに使用できるスペースがありませんでした。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。

さらに、以下のコードでわかるように、MaxBufferPoolSize は Int64.MaxValue に設定されます。

どんな提案でも大いに役立ちます!

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

wcf - WCF DuplexChannel - コールバックなしの接続

コールバックを定義した WCF インターフェイスがあります。これは非常にうまく機能しています。

今、コールバックを必要としない別のクライアントがあります。コールバック オブジェクトを指定せずにサービスに接続する方法があるかどうか知りたいですか?

DuplexChannel ファクトリを使用せずに、または InstanceContext (null) を使用して DuplexChannelFactory を使用してみましたが、どちらも機能しませんでした。

それを行う方法はありますか?

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

wcf - デュプレックス チャネルを閉じても、トレースでエラーが発生する

パブリッシュ/サブスクライブ パターンで使用される二重 WCF チャネルがあります。トレースでエラーを発生させずにクライアントをきれいに切断する方法がわかりません。このエラーはアプリケーションには影響しませんが、トレース ログに表示されます。この予想されるエラー メッセージでログがいっぱいになるため、他の問題を特定するのは困難です。

サーバー側のログに表示されるエラー:

「既存の接続がリモート ホストによって強制的に閉じられました」 socketError、Int32 bytesTransferred、SocketFlags フラグ) System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode、UInt32 numBytes、NativeOverlapped* nativeOverlapped) System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode、UInt32 numBytes、NativeOverlapped* pOVERLAP)

クライアント コールバック インターフェイス:

NotifyComplete を呼び出した後のクライアント クリーンアップ コード

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

c# - IIS の問題に関する WCF net.tcp サービス

クライアントがインターネット経由で展開されるクライアントサーバープロジェクトに取り組んでいます。すべてのサービスは WCF で記述され、wsHttpBinding. クライアント コールバック機能を実装する必要があります。クライアントはファイアウォールと NAT の背後にあるため、netTcpBindingファイアウォール/NAT をバイパスするものを使用できると言われました。そこで、サービスとコールバック コントラクトを作成しました。

クライアント側では、これが私がそれに接続しようとしている方法です:

wsHttpBindingこのコードは、バインディング タイプと を除いて、サービスに接続するコードとほぼ同じですChannelFactory。またweb.config、次のようになります。

サービス呼び出しを行うと、要求は に到達しますIISが、内部例外メッセージなしで例外がスローされ、サーバー側では次のトレース ログが取得されます。

これは非常に一般的なエラーであることは理解しています。私の質問は、私の Web 構成設定に何か問題がありますか? どんな助けでも大歓迎です。

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

wcf - wsDualHttpbinding を使用した大規模なデータ転送が失敗する

コールバックを使用して、25 MB を超えるサイズのデータ​​を複数のクライアントに同時に送信しようとしています。wsdualhttp バインディングを使用してサービスを実装しました。サービスが同時に 3 つ以上のクライアントにデータを送信しようとすると、「System.OutofMemory」および「メモリの割り当てに失敗しました」という例外がスローされます。serviceThrottling、maxItemsInObjectGraph、および maxBufferPoolSize に関連する値を設定しました。また、ストリーミングも使えません。これを達成する方法はありますか?

// サーバ側

//クライアント側