HttpClient没有在登台服务器上使用缓存

本文关键字:缓存 服务器 HttpClient | 更新日期: 2023-09-27 17:50:05

我有一个HttpClient被用于MVC应用程序创建如下:

new HttpClient(new WebRequestHandler()
{
    CachePolicy = new RequestCachePolicy(RequestCacheLevel.CacheIfAvailable)
});

我正在发送一个请求,并得到如下响应:

StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Cache-Control: must-revalidate, max-age=3600
  Date: Thu, 13 Mar 2014 10:26:41 GMT
  Location: <snip!>/api/customers/TEST
  X-AspNet-Version: 4.0.30319
  Content-Length: 246
  Content-Type: application/json; charset=utf-8
  Expires: Thu, 13 Mar 2014 11:26:42 GMT
}

在我的本地它工作得很好,但在登台服务器上调用相同的url时,服务仍然被击中;

缓存未被使用。

使用该服务的MVC站点托管在IIS7上,开发时我使用IIS Express。

为什么在我的本地机器(缓存工作)和登台服务器(缓存不工作)上运行它会有区别,我如何修复它,使缓存在两种情况下都能工作?

HttpClient没有在登台服务器上使用缓存

我不是100%,但是,我相信,因为HttpClient使用WinInet代理缓存的目的,它不会工作时,作为一个服务运行。即在IIS下。详见http://support.microsoft.com/kb/238425