0

出力キャッシュを導入することで、WCFサービスのパフォーマンスを向上させたいと考えています。

異なるURL(varyByParam="none" varyByCustom="RawUrl")ごとに、データベーステーブルFooBarが変更されていない限り、結果をキャッシュします。

ただし、このような変更は1日1回(午前6時20分)だけ確認したいと思います。日中にテーブルが変更された場合、翌日の午前6時20分までキャッシュがクリアされないようにします。

これにより出力に一貫性がなくなる可能性があることはわかっていますが、アプリケーションシナリオでは、これは問題ではありません。

毎日午前6時20分にのみ変更をチェックするようにoutputCacheに指示するにはどうすればよいですか?

4

2 に答える 2

1

「方法:パラメータを使用してページのバージョンをキャッシュResponse.Cache.SetExpiresする」で説明されている方法を使用できると思います。

コードは次のようになります。

var tomorrow = DateTime.Today.AddDays(1);
Response.Cache.SetExpires(new DateTime(tomorrow.Year, tomorrow.Month, tomorrow.Day, 6, 20, 0, DateTimeKind.Local)
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
Response.Cache.SetVaryByCustom("RawUrl")
于 2013-03-06T22:09:20.747 に答える
1

これをコードソリューションにするのではなく、IISアプリケーションプールを毎日午前6時20分にリセットするように設定します。

一部のブラウザは、上記のようにHTTPキャッシュヘッダーを無視します。

于 2013-09-16T21:41:14.397 に答える