带有WebRequestHandler的HttpClient返回无效的缓存响应

时间:2015-11-12 20:35:50

标签: c# caching asp.net-web-api asp.net-web-api2 dotnet-httpclient

我们在使用WebRequestHandlerHttpRequestCachePolicy时遇到问题,其中缓存条目似乎在精确序列后被破坏。情景如下:

  • 请求使用Cache-Control: public, must-revalidate, max-age=0Last-Modified返回200回复​​。
  • 使用Last-Modified-Since发出第二个请求,该请求返回带有Cache-Control: private的500响应。在我们的示例中,它是由IIS服务器在请求期间发生错误时引起的。
  • 发送第三个请求。它包含一个Last-Modified-Since标头,使服务器以304响应。
  • HttpClient结果解析为500响应。

我的假设是第三个请求中的Last-Modified-Since标题不应该出现并且是一个错误。

在使用HttpRequestCacheLevel.Default缓存策略时,在.NET 4.5中的示例控制台应用程序中进行了测试。在导航到URL时,在浏览器中尝试相同的测试似乎不会重现问题(我确认请求中不存在max-age = 0)。

我想要了解的是,如果它是.NET框架中的错误,如果我们没有正确使用API​​或者我们没有正确使用响应头。

0 个答案:

没有答案