在我的 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 设置为“私有”的资源......这有帮助吗?