問題タブ [wcf-callbacks]

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

wcf - RESTful サービス内での WCF Duplex サービスの使用

二重サービス (「ServiceDuplex」) への参照を持つ WCF WebHTTP サービス (「ServiceREST」) を作成したいとします。ServiceDuplex では、要求されたデータを配信するために、特定のコールバック メンバーの実装が必要です。たとえば、ServiceDuplex で GetCustomers を呼び出すと、コールバック「ReceiveCustomers」を介してクライアントに顧客を返すサービスのメソッドがトリガーされます。

そうは言っても、ServiceREST で "GetSingleCustomer" メソッドが必要だとします。(起動後にキャッシュするのではなく) すべてのデータがオンデマンドで取得されると仮定すると、最初に ServiceDuplex から "GetCustomers" を呼び出し、実装したコールバック内でコレクションが満たされるのを待ってから、単一の顧客を検索する必要があります。私は欲しい。

webHttp はクライアントへのコールバックをサポートしていないため、デュプレックスのコールバックがコレクションを満たすまで、GET (GetSingleCustomer) 呼び出し内で AutoResetEvent のようなものを使用する必要があります。

私がやろうとしていることの「ベストプラクティス」はありますか、それとも私がやろうとしていることは間違っているので、そのようなプラクティスは作成されていませんか?!

助けてくれてありがとう。

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

wcf - WCF-クライアントコールバックをお勧めしますか?

IncrementList()とGetList()の2つの操作を公開する1つのWCFサービスがあります。クライアントBはサービスに接続し、GetList()を呼び出して、ユーザーに表示します。クライアントAには、IncrementList()を呼び出すことによってこのリストを更新する機能があります。
IncrementList()が呼び出されたときにクライアントBに通知を受け取り、GetList()を再度呼び出して更新されたデータを表示できるようにします。

これをどのように実装するかについて概説してください。コールバック?デュプレックス?パブリッシャー/サブスクライバー?
このシナリオを支援するWCF4.0の新しいものはありますか?

サービス図

ありがとう!

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

c# - サービスコールバックのタイムアウトを動的に変更する方法

サービスのコールバック タイムアウトを設定する必要がありますが、定義されている場所が見つかりません。これはハードコーディングする必要があります。

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

c# - WCFコールバックでワイドスコープロックを使用したマルチスレッド同期

私がやりたいのはこれです-

サービスへのプロキシ呼び出しを行い、非同期コールバックを介して別のスレッドでデータを受信したい...トリッキーな部分は、すべてのデータが取得されるまでフォアグラウンドスレッドをスリープ状態にしたいということです。

これを行うために同期メソッドを使用していない理由は、ページングを使用してデータをチャンクで返すWCFサービスのAPIを作成しているためです。
クライアントがページングを使用できるようにしたいのですが、すべてのページングコールバックをAPIに公開したくありません...APIが同期データ取得メソッドを公開しているように見せたいです。

クラスメソッドとコールバックにアクセスできるプライベート静的セマフォ(スレッドに依存しないため)を使用してみましたが、実行を一時停止する手段として単一のユニット容量があります。

まず、Semaphore.WaitOne()ステートメントを使用します。
次に、フォアグラウンドスレッドでプロキシ呼び出しを実行すると、サービスがデータ取得を処理するスレッドを作成し、制御がクライアントに返されます。
クライアントでは、すぐに2番目のSemaphore.WaitOne()ステートメントを使用します。これにより、フォアグラウンドスレッドの実行が一時停止されます。次に、「ページング完了」コールバックが別のスレッドで実行されると、Semaphore.Release()を使用しますが、フォアグラウンドスレッドが2番目のSemaphoreステートメントを通過することはなく、ロックされたままになるため、クライアントがフリーズします。

私が間違ってやっているアイデアはありますか、それとももっと効果的な別のロック設計がありますか?

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

wcf - Silverlight クライアントのコールバックを使用した PerSession WCF サービス

セッション管理 (PerSession) とコールバックをサポートする SL クライアント用の WCF サービスを開発したいと考えています。WCF サービスは、Windows サービスとしてホストされます。

最適な WCF バインディングの選択 (wsdual、pollingDuplex、その他) は? 賛否両論もお願いします。

よろしく、

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

wcf - 10分後にnetTcpバインディングタイムアウトを伴うWCFコールバックサービス

WCF (コールバック コントラクトを使用) と netTcpBinding を使用してチャット アプリケーションを作成しています。サービスを Windows サービスとしてホストし、クライアント アプリケーションを介して他のコンピューターからアクセスしています。

私が今直面している問題は、クライアント接続が10分後に障害状態になることです。これは、何らかのタイムアウトが発生したようです。サービスとクライアントの両方で受信タイムアウトと送信タイムアウトを増やしてみましたが、うまくいきませんでした。

このタイムアウト期間を長くするには、どの設定を変更する必要がありますか?また、どのアプリケーション、サービス、またはクライアントで変更する必要がありますか?

以下は私の設定ファイルです。

サービス

クライアント

ありがとう。

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

asp.net - ASP.NET コメット アプローチと WCF コールバック

Web アプリにチャット (Facebook など) を実装したい/実装する必要があります。調査の結果、2 つの異なるアプローチを見つけましたが、どちらを採用すべきかわかりません (正直に言うと、1 つを試してみましたが、奇妙な動作をしますが、これについては後で説明します)。

私のアプリケーションに関するいくつかの事実。2 つの異なるクライアントがあります。1 つは Web アプリケーションで、もう 1 つは wpf クライアントです。これら 2 つのクライアントは両方ともチャットを実装している必要があります。それらは、WCF サービスを介してサーバー上で通信します。

したがって、AJAX Long Polling を意味するコメット アプローチがあることがわかりました。一方、WCF コールバック サービスを使用できます。

WCF コールバック/コメット アプローチの欠点/利点はありますか?

私にとって、コールバックのアプローチは非常に単純ですが、ajax の長いプーリングははるかに複雑に聞こえます。

Thxは事前に

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

c# - 別のクラスからリストビューにアクセスする方法は?

netTCPbindingを使用して接続するWCFサービスlibとclient[Winform]があります。
クライアントが関数Search(string txtSearch,string path)を呼び出し、サーバーが結果を返送する必要がありますが、クライアントに結果を待たせたくないので、サーバーが独立して結果を返送する必要があります。したがって、サーバーがアイテムを送り返すときはいつでも、クライアントはそれをlistView1に追加する必要があります。

これがクライアントアプリケーションの小さなコードです。可能であれば、クラスからlistView1にアクセスするにはどうすればよいでしょうか。Callback

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

c# - WCF コールバックの実装

私は、クライアントをサービスにする基本的な方法と、サービスをクライアントにする基本的な方法について、コールバックの利点を理解するのに苦労しています。

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

c# - WCFで再帰関数を非同期コールバックする方法は?

はじめに : サーバー [ WCF サービス ライブラリ] とクライアント [ Winform ] があり、クライアントは netTcpBinding を使用してサーバーに接続します。

サーバーの仕事は、ファイルマネージャー機能{新しいフォルダー、移動、コピー、削除、プロパティ、属性、および検索}を使用して、コンピューターファイルをクライアントに共有することです。

ここに画像の説明を入力

問題: 検索関数は再帰関数であり、検索キーを含む (フォルダー/ファイル) 名が見つかると、(クライアント CALLBACK を使用して) 即座にクライアント ListView にアイテムを追加します。
ユーザーが再帰関数_Search()を停止できるようにする検索停止ボタンを追加するまで、すべて完璧に機能していました。検索を停止しようとすると、GUIがフリーズし、フリーズモードから戻ることはありません。私は「デバッグを停止」します。
実際、デバッグモードで検索機能の何が問題なのかを確認するためにポイントを設定すると、機能して検索が停止します。

これは私が検索に使用するコードです:

WCF ライブラリ側:

WCF インターフェイス:

クライアント側 :

クライアント Form1.cs :

私はそれを修正することについて本当に混乱しています.質問に正しいタイトルを選択したかどうかわからないので、非同期コールバックが必要なためにそれが起こっている場合、検索関数と非同期コールバックをWCFで変換するにはどうすればよいですか?