1

クエリ文字列パラメータ「Version」によってサーバーの出力キャッシュを変更しながら、クライアントサーバーの両方でページをキャッシュする方法を探しています。

このタグで:

<%@ OutputCache Duration="10" Location="Any" VaryByParam="none" %>

私はこれらのヘッダーを取得します:

HTTP/1.1 200 OK
Cache-Control: public
Content-Type: text/html; charset=utf-8
Expires: Wed, 03 Feb 2010 02:29:24 GMT
Last-Modified: Wed, 03 Feb 2010 02:29:14 GMT
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.21006
X-Powered-By: ASP.NET
Date: Wed, 03 Feb 2010 02:29:14 GMT
Content-Length: 2364

これは私がクライアント側で望んでいることを正確に実行しますが、サーバー側では「バージョン」によって異なりません。

一方、このタグで:

<%@ OutputCache Duration="10" Location="Any" VaryByParam="Version" %>

私はこれらのヘッダーを取得します:

HTTP/1.1 200 OK
Cache-Control: public, max-age=4
Content-Type: text/html; charset=utf-8
Expires: Wed, 03 Feb 2010 02:28:29 GMT
Last-Modified: Wed, 03 Feb 2010 02:28:19 GMT
Vary: *
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.21006
X-Powered-By: ASP.NET
Date: Wed, 03 Feb 2010 02:28:25 GMT
Content-Length: 2352

これはサーバー側で私が望むことを正確に実行しますが、「Vary:*」ヘッダーは、要求ごとにブラウザーにページを再ロードするように強制します。

パラメータを変えながら、クライアント側とサーバー側の両方でキャッシュを取得する方法はありますか?

4

1 に答える 1

2

それを見つけた:

protected void Page_Load(object sender, EventArgs e)
{
  Response.Cache.SetOmitVaryStar(true);
}

詳細はこちら: http://support.microsoft.com/kb/836868

おそらく、これは ASP.NET 4 ベータ 2 で修正されています ( http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes/#_TOC10を参照) が、VS 2010 RC の時点ではまだ壊れているようです。

于 2010-02-03T04:34:50.870 に答える