私の ASP.NET MVC 2 アプリには、次の行があります。
Response.Cache.SetMaxAge(TimeSpan.FromDays(90));
Response.Cache.SetETag(lastWriteTime.Value.Ticks.ToString());
Fiddler を使用して HTTP ストリームをトレースすると、次のことがわかります。
ETag: 634473035667000000
IIS7 で実行している場合は応答ヘッダーに含まれていますが、Visual Studio 2010 Web サーバーで実行している場合、このヘッダーはただ... 消えます。Response.Cache.SetETag() または Response.AppendHeader("ETag", etag) を介して設定しても、返されることはありません。
これは IIS Web サーバーの「機能」ですか? 見逃した構成設定はありますか?何かをデバッグできるようにするためにIISプロセスに接続する必要がある場合、キャッシュの無効化のテストが少し面倒になります...
編集: Response.Cache.SetCacheability(HttpCacheability.Public) を呼び出しているにもかかわらず、VS/Cassini は常に HTTP Cache-Control が「プライベート」に設定されたリソースを返すように見えます...それは役に立ちますか?