客户端HTTP处理& ETag的

时间:2012-04-17 09:28:48

标签: c# silverlight caching rest

我正在开发一个小型SilverLight应用程序,它使用WebClient来请求REST服务。根据这个:

http://msdn.microsoft.com/en-us/library/dd920295(v=vs.95).aspx

使用“客户端HTTP”处理时,不应该使用缓存....

我正在调用的REST服务使用ETag,因此没有缓存,我不希望第二次调用我的服务,将包含If-None-Match标头?

当REST服务返回'304'(NotModified)时,我仍然会得到一些数据,表明数据是从缓存中返回的....

REST服务还将'Vary'标头设置为'Accept'(这样在生成Cache密钥时应该考虑Accept标头),但是看起来这似乎不起作用....

所以我有点担心,无论缓存是否存在......看起来好像是中途......

有人可以澄清吗?

TIA

索伦

1 个答案:

答案 0 :(得分:0)

我建议不要在WCF服务上使用ETags。在IIS中,服务或包含服务的目录需要包含HTTP响应标头,将内容设置为立即过期,以便不可能在客户端上进行缓存。这样,对服务的调用不会导致来自服务器的HTTP 304响应。