0

私は MVC3 アプリに取り組んでおり、オブジェクトが意図せずにキャッシュされるという問題に遭遇しました。私のコードは、別のカスタム ビジネス ロジック DLL への呼び出しからオブジェクトを作成しています。このビジネス ロジック DLL は、データベースからデータを取得します。データベースのデータを変更した後、ブラウザを閉じてアプリケーションを再実行しても、古いデータが表示されたままです。開発環境でデバッグしているときに確認できるため、ブラウザのキャッシュの問題ではありません。

開発中に、asp.net 開発サーバーを停止してアプリを再実行すると、新しいデータが取得されます。IIS で Web サイトを再起動すると、新しいデータが取得されます。

範囲外になった後でも、asp.net がこれらのオブジェクトをキャッシュして再利用している理由は何ですか?

ビジネス ロジック dll にはキャッシュが組み込まれているため、おそらくそれが主な問題です。その場合、問題は、セッションが終了したら asp.net にオブジェクトを消去するように指示できる方法があるかどうかだと思います。

4

2 に答える 2

1

ASP.NET MVC3にはデフォルトでキャッシュはなく、少なくともデータのキャッシュはありません。IISの設定が正しく、誤ってを使用しないようにしてくださいOutputCacheAttribute

ビジネスレイヤーでのキャッシングについて:過去2日間に、少なくとも3つのキャッシング関連の問題が発生しました。注意:キャッシングはトリッキーであり、静的変数もトリッキーです。必要がなければ、やらないでください。キャッシングは非常に強力ですが、危険でもあります。これは前述の場合にも当てはまりますOutputCacheAttribute

于 2011-11-30T16:22:26.247 に答える
0

新しいコンテキストを作成してリクエスト後に破棄するのではなく、データコンテキストを静的に作成しているように思えます。これは多くの理由で悪いことです。

ビジネス層に「ある程度のキャッシュ」があると言うとき、それはどういう意味ですか? どうやってキャッシュしていますか?

于 2011-11-30T16:30:36.423 に答える