ASP.NET MVCメソッド(.NET 4.0上のv3.0)を次のように設定しました。
[OutputCache(Duration = 31536000, Location = OutputCacheLocation.Any)]
public virtual ActionResult Item()
{
this.Response.Cache.SetLastModified(new DateTime(2011, 01, 01));
return this.Content("hello world", "text/plain");
}
Last-Modified
ヘッダーが指定どおりに設定された状態で返されると思いMon, 07 Feb 2011 00:00:00 GMT
ますが、実際には、出力が最初に出力キャッシュにキャッシュされた日付(つまり、IISがリセットされてから初めてメソッドが呼び出された日付)として返されます。
[OutputCache]
出力キャッシングが行われないように属性をコメントアウトすると、Last-Modified
ヘッダーは期待どおりに返されるため、出力キャッシングインフラストラクチャで、指定された値を無視することを選択しているように見えます。
なぜそうしているのか、何か考えはありますか?また、指定した値をLast-Modified
日付として使用する方法はありますか?