質問

私は、Webアプリケーションは、当社の企業、我々がフィールドに出てい異なる店舗、等が挙げられる。これらの販売に関連したさまざまな販売地域と同様に、AS400からデータを返すWCFサービスのオペレーションを呼び出すためにプロキシを使用してい地域や店舗が店舗は二回しか年間多分追加され、頻繁に変更しないと地域は、年間のカップルのための同じだった。

私は私の混乱がInstanceContextModeであると思います。プロキシクライアントがGetRegions()またはGetStoresForRegion(int型regionNumber)

呼び出したとき、私はちょうど、「地域」と「店舗」のリストを返しますよ

私は、単一のInstanceContextModeを設定し、地域や店舗が任意のサービス操作の呼び出しに先立って初期化され、人口のどのような方法であろうこのヘルプをお持ちの場合は?基本的には今、そのすべての呼び出しにDBの検索を行う、と私は必要がないと思います。

Webアプリケーションへの

だから、ユーザーがログイン - >ウェブアプリページ - >地域のドロップダウンロードする必要があります - > Web開発者は、領域を取得するためにプロキシを起動します...しかし、すべての単一のユーザが、その基本的にWebアプリケーションを使用する場合、これは起こっています毎回ユーザアクセスのWebアプリは、プロキシがDBへの呼び出しを行う、私はこれは私がサービス操作を設定するか、私は完全に何かを誤解している方法で、愚かと誤りであると信じて?

アップデート - サービスは、IISでホストされているので、この全体の問題は議論の余地がされる可能性があります。

役に立ちましたか?

解決

基本的なベストプラクティスの推奨事項は、コールごとの、シングルインスタンス・サービスを使用することです。それは作成するのが最も簡単だ、などなし並行処理の悪夢ます。

しかし:。もちろん、あなたがサービスを呼び出すたびに、サービスインスタンスが作成され、バックエンドのデータベースが照会されます。

これまでに可能な場合は、これに固執してみてください。データベースにキャッシュロジックを置くようにしてください - あなたは十分なRAMを持っている場合は、あなたの頻繁に要求されたデータのほとんどはメモリに留まります。

あなたのWCFサービスでConcurrencyMode =複数に行く並行性の問題のすべての種類は、あなたが持つ非常に注意する必要があることを表示させます。可能な限りこれを避けるようにしてくださいます。

まず、呼び出しごとの単一インスタンスを試してみて、あなたが本当に必要な場合にのみ最適化!

マルク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top