J'essaie de mettre en cache la sortie d'un fichier ApiController méthode dans API Web MVC4 .
Voici le code du contrôleur :
using System.Web.Http;
using System.Web.Mvc;
using System.Web.UI;
public class TestController : ApiController
{
[OutputCache(Duration = 10, VaryByParam = "none", Location = OutputCacheLocation.Any)]
public string Get()
{
return System.DateTime.Now.ToString();
}
}
N.B. J'ai également essayé l'attribut OutputCache sur le contrôleur lui-même, ainsi que plusieurs combinaisons de ses paramètres.
La route est enregistrée dans Global.asax :
using System;
using System.Web;
using System.Web.Http;
using System.Web.Routing;
namespace WebApiTest
{
public class Global : HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHttpRoute("default", routeTemplate: "{controller}");
}
}
}
J'obtiens une réponse positive, mais elle n'est mise en cache nulle part :
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
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">18/07/2012 18:56:17</string>
Je n'ai pas pu trouver de documentation sur la mise en cache de la sortie dans l'API Web.
Est-ce une limitation de l'API Web dans MVC4 ou est-ce que je fais quelque chose de mal ?