标题Cache-Control: max-age=0
意味着内容被认为是陈旧的(并且必须立即重新获取),这实际上与之相同Cache-Control: no-cache
.
我正在尝试在Web API中缓存ApiController方法的输出.
这是控制器代码:
public class TestController : ApiController
{
[OutputCache(Duration = 10, VaryByParam = "none", Location = OutputCacheLocation.Any)]
public string Get()
{
return System.DateTime.Now.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
NB我还尝试了控制器本身的OutputCache属性,以及它的几个参数组合.
该路线在Global.asax中注册:
namespace WebApiTest
{
public class Global : HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHttpRoute("default", routeTemplate: "{controller}");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个成功的回复,但它没有缓存在任何地方:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/xml; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 18 Jul 2012 17:56:17 GMT
Content-Length: 96 …
Run Code Online (Sandbox Code Playgroud)