2011-07-22 8 views
1

私はIIS7 WebアプリケーションでホストされているWCFサービスを持っています。これはWebServiceHostFactoryによって作成されます。クライアントは、Collectメソッドを呼び出すサービスに接続し、データはDBに格納されます。すべて正常に動作します。IIS上でコールバックおよびホストされたWCFサービスシングルトン?

ここで、新しいデータが収集されるたびに(つまり、サービスメソッドCollectが呼び出される)、ページを更新したいと思います。

私の質問です:最良のアプローチは何ですか?

私はCallbackContractを検討していましたが、これはシングルトンパターン(サービスはPerCallになりました)を必要とするか、間違った前提ですか?このアプローチは可能ですか?

私のロジックは次のとおりです。

  1. ASP.NETページはサービスシングルトンが
  2. メソッドが呼び出されたサービスで、今から作成され
  3. WCFサービスに加入して呼び出し、加入者(クライアント)
  4. したがって、仕事にサブスクリプションするためにサービスインスタンスが1つだけである必要があります(またはそれですか?)
  5. クライアントのページが更新されます

について、あなたはサーバからユーザのブラウザでページを更新することはできません ケイト

+0

ブラウザでASP.NETページのページの再読み込みをどのように開始する予定ですか?いくつかの高度なプッシュプロダクトを使用しない限り、ASP.NETページをポーリングして、WCFサービスをポーリングする必要があります。 –

+0

うん、コールバックの問題を解決することに集中していた。それはユーザーの介入なしにページの更新についてだった。だからタイマーです。 – SmartK8

答えて

1

。ブラウザーは要求応答プロトコルであるHTTPを使用するため、ブラウザーが要求を発行していない場合は、サーバーからの応答を探しません。

ブラウザにSilverlightアプリケーションがホストされている場合、これは別の話ですが、Silverlightはどこにも言及していません。また、HTML5でWebSocketを使用して求めていることを実行することもできますが、まだ完全に標準化されていません。

+0

お返事ありがとうございます。だから、Silverlightなしではこのシナリオは不可能だと思いますか?何か別の選択肢があるのですか、それとも「タイマー」ソリューションだけ(毎x秒/分)を残していますか? – SmartK8

+0

JavaScriptを使用したポーリングは最も一般的なアプローチです。 WebサービスにAJAXリクエストを送信し、jQueryなどのjavascriptライブラリを使用して、フルページの更新を行うことなく、ユーザーのブラウザのページを更新します。 –

+0

ええ、確かにそれが私のデフォルトオプションでした。私はもっ​​と洗練された(効率的な)ものを求めていましたが、これはしなければならないと思います。今私はこれらの他のオプションを探検する(あるいは実装する!:O)ことを頼んだことをうれしく思います。私は完全にサーバーがリダイレクトを使用することができないことを忘れていました:)私はちょうどコールバックを使用します、私はすでにコールバックのためのインフラストラクチャを持っているので、十分に簡単です。苦い失望から私を救ってくれてありがとう。 – SmartK8

関連する問題