ASP.NET 4.5 でアプリケーションを開発しています。Webサービスをセットアップしました。Web サービスは、GET Ajax 呼び出しを使用して Jquery によってアクセスされます。この関数には「id」パラメーターがあり、id ごとに異なるコンテンツが返されます。
サーバーとクライアントの両方でそのデータをキャッシュしたい。クライアントでは、「CacheDuration」の使用方法は既に知っていますが、問題はクライアント側にあります。HttpFox を使用して、各応答のヘッダーを取得します。
関数の先頭に次のコードを設定しました。
HttpCachePolicy cache = HttpContext.Current.Response.Cache;
cache.SetCacheability(HttpCacheability.Private);
cache.SetExpires(DateTime.Now.AddMinutes((double)10));
cache.SetMaxAge(new TimeSpan(0, 0, 10));
FieldInfo maxAgeField = cache.GetType().GetField(
"_maxAge", BindingFlags.Instance | BindingFlags.NonPublic);
maxAgeField.SetValue(cache, new TimeSpan(0, 10, 0));
私がやりたいことは、クライアントが同じ ID に対して再度リクエストを送信するのを防ぎ、それを 10 分間行うことです。したがって、最初の呼び出しで要求が行われ、応答 200 が返されます。2 回目の応答ヘッダーは 304 になります。
現在、上記のコードはそれを行っていません。それを達成する方法を知りたいです。繰り返しますが、私は 304 を返すクライアント側のキャッシュについて話しているので、キャッシュの有効期限が切れるまで、同じ「id」を求めてサーバーに再度アクセスしたいと考えています。
コードを使用して実行できることはわかっているので、IIS タイプのソリューションを提出しないでください。
これを解決するにはあなたの助けが必要です。