2009-05-06 12 views
5

誰かがこれをサーバー側からクライアントにイベントを取得する方法を試しているのだろうかと思っています。私はUnixベースのサーバーを使用しているので、WCFデュプレックス/コールバックなどを使用することはできません。WCFクライアントでの自己ホスティング?良いまたは悪い

私のクライアントは厚い.netアプリケーションを実行しているWindowsボックスであるというアイデアは、WCF自己ホストをスピンアップし、そのセッションのサーバー上の自己ホストURL彼らは非常にシンプルな契約を結ぶでしょう、そして、それはサーバーがアップデートを呼び出してそれがサーバーがそれを待っていることを伝えるクライアントサーバーを呼び出すと、クライアントはそれを得るでしょう。

私はまだしようとしています私の頭の中でWCFを回ってください。これが良い方法であるかどうかは分かりません。心配する必要のあるセキュリティ上の影響はありますか?プラットフォーム間でDuplexコールを取得する方法はありますか?

私はソケットを使用する前に何か似たようなことをやったことがあります。あるいは多分、クロスプラットフォームのメッセージキューがこれをどうにかするより良い方法でしょう。

おかげ

76mel

答えて

1

非常に少なくとも、それが動作するはずのような* nixのサーバーは、その後、ちょうどウェブを作る可能性があるので、私はあなたが同様にIISでホストする可能性が推測すると思いますけれども、それは、聞こえますコール、右?私はセルフホスティングがあなたを得られるかどうかは分かりませんが、それはうまくいくはずですが、構成するネックにもう少し痛みがあるかもしれません。

あなたが決定を下すたびにここで更新してくださいそれは興味深い挑戦のように聞こえるので、私たちのいくつかはあなたがどのように作り出すかを見たいと思っています。

+0

はい私は、IIS中間層にその素晴らしいアイデアを入れることを考えました。私の考えでは、私たちは10,000のクライアントとその3分の1のコンカレントを持っているので、IISボックスでは少しコストがかかります。 私はコンセプトの証拠を整理して投稿していきますが、TCPリスナーをスピンアップするのに良いことがWCFでないのが一般的な慣習であるかどうかについて誰かがより多くの考え、洞察、懸念を抱いていれば感謝しますサービス。 – 76mel

+0

私はこれをすべて試してみました。ファイアウォールの内側にあるプロジェクトではこれがうまくいくと思います。あなたがファイアウォールをスパンしたい場合、私はバス/キューを使用する方が、より低いレベルで接続するより良い方法だと思います。ここで私がしたことは、Unixサーバが知っていたシンプルなイベント契約を結ぶことでした。 Windowsサービス内でWCFサービスを実行しました.WCFサービスは、最初にエンドポイントを持つサーバーに登録されます。サーバーはエンドポイントでイベントを発生させることができ、サーバーからデータを引き出すことでこれらのイベントに応答することができます。 – 76mel

+0

優秀!それはクールなブログ記事を作るように聞こえる。 –

1

同様のシナリオでは、自己ホストWCFを使用します。また、クライアントアプリケーションをIISに依存させないようにして、ライセンスと展開の両方の面倒を回避したいと考えました。

これはかなりうまく動作しますが、WCFは必要なものが過剰であるかもしれません。 HTTPを使用しているので、Http.sysで直接構築された単純なWebサービスを作成できます。

+0

http.sysのシンプルなWebサービスは、WCFを使用するよりも簡単に記述して管理できますか?疑わしい。 –

+0

私はhttp.sysでWebサービスを実装しようとしていませんでしたので、確かに言えません。しかし、私はしばらくWCFで作業していましたが、それは私が望むよりもはるかに柔軟性が低いことがわかりました。 – dthrasher

+0

cassiniウェブサーバーを試しましたか? – 76mel

1

同様の結果を得る別の方法は、クライアントのポーリングを行うことです。これは、どの要件が存在するかに強く依存します。ほぼリアルタイムの更新が必要な場合は、これを行うために多くの世論調査を行う必要があるため、明らかに機能しませんが、クライアントへの更新を取得するのに1分以上かかるのであれば、ポーリングは答え。

関連する問題