0

我正在开发一个小型 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”(以便在生成缓存密钥时应考虑 Accept 标头),但似乎这不起作用....

所以我有点迷茫,不管缓存是否存在......似乎它已经到了一半......

有人可以澄清吗??

TIA

索伦

4

1 回答 1

0

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

于 2012-04-19T21:04:11.713 回答