Кэширование вывода для ApiController (Веб-API MVC4)

Я пытаюсь кэшировать вывод метода ApiController в веб-API.

Вот код контроллера:

public class TestController : ApiController
{
    [OutputCache(Duration = 10, VaryByParam = "none", Location = OutputCacheLocation.Any)]
    public string Get()
    {
        return System.DateTime.Now.ToString();
    }
}

Н.Б. Я также попробовал атрибут OutputCache на самом контроллере, а также несколько комбинаций его параметров.

Маршрут прописан в Global.asax:

namespace WebApiTest
{
    public class Global : HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            RouteTable.Routes.MapHttpRoute("default", routeTemplate: "{controller}");
        }
    }
}

Я получаю успешный ответ, но он нигде не кэшируется:

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

18/07/2012 18:56:17

Мне не удалось найти документацию по кэшированию вывода в Web API.

Это ограничение веб-API в MVC4 или я что-то не так делаю?

46
задан abatishchev 17 November 2017 в 22:42
поделиться