問題タブ [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.
wcf - CommunicationObjectAbortedException がスローされた後にコールバック チャネルを回復する
ポーカー デスクトップ ゲーム用の (複数) クライアント - (1) サーバー アーキテクチャがあります。コールバック チャネルを使用してコールバック通知を使用しています。
しかし、インターネット接続が切断されたために、特定のクライアントがサーバーから切断され、その特定のクライアントの WCF チャネルも失敗した状態になり、サーバーにある彼のコールバック チャネルも失敗することがあります。
シナリオ :
そのクライアントはゲームをプレイしていますが、インターネット接続が切断され、そのゲームが停止し、ゲーム ウィンドウが開いたままになり、インターネット接続が回復したときにそのクライアントはサーバーからドロップアウトされますが、そのプレーヤーのゲーム ウィンドウは引き続き開いており、そのプレーヤーは彼/彼女の WCF チャネルがドロップアウトされているため、何もしないでください。
特定のクライアントがサーバーから脱落し、「CommunicationObjectAbortedException」例外をスローしている間、そのクライアントのウィンドウを閉じたいと考えています。
以前の WCF チャネルのコールバック チャネルは、失敗した状態であるため使用できません。そのため、以下のコードを使用してドロップしながら、サーバーに新しい callbackChannel を作成しようとしました:
操作コンテキスト。現在の.GetCallbackChannel();
しかし、ここでは Current が「NULL」を表示しているため、そのプレーヤーの WCF チャネルが中止されているため、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーがスローされます。
中止された WCF チャネルのコールバック チャネルを使用するか、再初期化せずにその WCF チャネルを回復するか、新しいチャネルを使用してそのクライアントを呼び出す解決策はありますか?
c# - WCF コールバック - 同期実行
WCF コールバックを実装しようとしています。サービス側でコールバック メソッドを呼び出すと、非同期で実行されます。コールバックからサービスに値を返さずに、サービス メソッドが次のステートメントに進む前に、コールバック メソッドが実行を終了するのを待つ方法はありますか?
ここで、ステートメント「Console.WriteLine("calling callback2");」callback1 メソッドが終了する前に実行されます。callback2 が終了するまで待機します。
wcf - wsDualHttpbinding を使用した大規模なデータ転送が失敗する
コールバックを使用して、25 MB を超えるサイズのデータを複数のクライアントに同時に送信しようとしています。wsdualhttp バインディングを使用してサービスを実装しました。サービスが同時に 3 つ以上のクライアントにデータを送信しようとすると、「System.OutofMemory」および「メモリの割り当てに失敗しました」という例外がスローされます。serviceThrottling、maxItemsInObjectGraph、および maxBufferPoolSize に関連する値を設定しました。また、ストリーミングも使えません。これを達成する方法はありますか?
// サーバ側
//クライアント側
c# - Windows Phone 8 コールバック WCF サービス
Windows Phone 8 アプリケーションと、コールバック モデルを実装する WCF サービスがあります。サービス参照の構成に問題があります。WP8 アプリの代わりに Windows フォーム アプリケーション クライアントに wsDualHttpBinding を使用してサービスをテストしたところ、完全に機能しました。ただし、このバインドは WP8 アプリには適していないため、構成を変更する必要があります。私のWP8アプリケーションで動作するサービスの簡単な動作構成を提案してもらえますか?
c# - 複数のクライアントで WCF コールバックが機能しない
コールバックを使用して WCF サービスを作成できました。コールバックは期待どおりに機能していますが、1 つのクライアントに対してのみです。別のクライアントを起動すると、最初のクライアントはコールバックの受信を停止しますが、2 番目のクライアントはコールバックを 2 回受信します。InstanceContextMode
Single、PerCall、および PerSession モードで試しましたが、同じ問題が発生します。
この問題を解決する方法を知っていますか?
サービスクラスは次のとおりです。
コールバック クラスは次のとおりです。
c# - Android からの WCF コールバック サービスへのアクセス (WCF と Android 間の双方向チャネル)
サービスを RESTFUL にし、basicHttpBinding を使用して、Android から WCF サービスを使用しています。私の質問は: Android クライアント (またはマイクロソフト以外のクライアント) が、コールバックを実装する WCF サービスを呼び出すことは可能ですか? そうでない場合、WCF と Android の間の双方向チャネルのように機能するアイデアはありますか?
c# - Microsoft 以外のクライアントからの WCF サービス コールバックへのアクセス
WCF は相互運用可能であると想定されており、WCF サービスは Microsoft および Microsoft 以外のクライアントからアクセスできますが、WCF コールバック サービスにアクセスできるのは Microsoft クライアントのみです。問題は、Microsoft 以外のクライアントが WCF コールバック サービスにアクセスできるかどうかです。Microsoft サービスと Microsoft 以外のクライアントの間で双方向チャネルをアクティブにする方法はありますか?
c# - WCF でコールバック メソッドを呼び出す前にクライアントの状態を確認する
netTCPBinding を使用して、二重チャネルで動作する WCF サービスと WCF クライアントがあります。
接続ユーザーを辞書に保存します ( Dictionary<int userID,CallbackInstance instance>
)
ユーザーが定期的に切断する場合は、サービスから切断を呼び出して、接続済みユーザー リストからユーザーを削除します。それは正常に動作します。
しかし、クライアント pc が不規則に切断されると、クライアントは Disconnect メソッドを呼び出すことができず、クライアントは接続されたユーザー リストに残っているため、これが問題です。私のWCFサーバーがコールバックのためにオンラインユーザーのサーバーをチェックすると、サーバーはクライアントのコールバックメソッドを呼び出そうとしますが、クライアントが利用できず、WCFサーバーアプリがクラッシュします。
コールバック インスタンスを呼び出す前にクライアントのステータスを確認することはできますか?
c# - コールバック付きのWCF耐久性サービス、コンテキストを取得できません
コールバックのあるサービスを作成しました。これはうまくいっています。次に、このサービスを耐久性のあるものにしたいと思います。私の問題は、コンテキストを取得して後で再度ロードすることです。次のようにサービスを呼び出します。
コンテキストを今どこに保存する必要がありますか?また、どうすればこれを行うことができますか? クライアントベースでいくつかのことをしようとしました...しかし、これは別の解決策だと思います。同じサービス インスタンスに再度アクセスする正しい方法は何ですか?
助けてくれてありがとうマックス