私はWCFを完全に新しくしています。私はそれが通常のWebサービスのように動作すると確信していました。また、私も間違っているとはかなり確信していますが、今私は正しいことをしたいと思っています。ASP.NetアプリケーションとベストプラクティスでWCFを使用する
私たちのASP.Netアプリケーションは、インターネット上のWCFサービスに接続します。私は基本的なセキュリティとSSLを実装しています。それは動作していますが、通常のWebサービスを行っていたときよりも遅くなります。返されるデータは基本的に通常のWebサービスと同じです。
通常のWebサービスを使用していたときはいつでもデータを取得する必要がありました。新しいサービスオブジェクトを作成し、必要なデータの関数を呼び出しました。これは正常に動作するように見えましたが、私が想像するように、特に何千人ものユーザーが同時に接続している場合は、これを行う最善の方法ではありません。だから私はWCFに変換したときに、クライアントを開いたままにして、サイトに接続しているすべての人にそれを使用することに決めました。私はキャッシュに入れて、キャッシュがオブジェクトをダンプするときに、私はそれを処分するコールバック関数を持っていた。
私はこれをすべて変更してから、複数の人が接続するときに問題になるかもしれないと思っていた。人物Aがデータを要求した場合、人物Bは、データがそのサービスを介して取り出される前に、その人物が終了するのを待たなければならない。
私はそれをセッションベースに変更しました。私はこれを間違って実装したか、まったくうまくいかなかったので逆効果になった。クライアントはタイムアウトしたり、フォルトを引き起こしたり、まったく動作しません。私はそれを今のところキャッシュに戻した。それはうまく動いているようだ(遅いを除いて)。
このシナリオでは「ベストプラクティス」とは何ですか?必要になったときにクライアントを作成したり、セッションをベースにして(何が間違っているのか把握して)、そのまま使用して1つのクライアントキャッシュメソッドを使用しますか?
+1です。良い質問。 – AnthonyWJones