我一直在开发一个小型Silverlight客户端,它将使用WCF WEBAPI与REST服务构建进行对话.... 当使用GET调用服务时,它将启动一个长时间运行的进程,它将生成一个资源,因此服务将返回'Accepted'和Location头中的URI,以找到资源的位置。< / p>
Server: ASP.NET Development Server/10.0.0.0
Date: Fri, 18 Nov 2011 09:00:17 GMT
X-AspNet-Version: 4.0.30319
Content-Length: 3
Location: http://localhost:52878/myservice?fileid=f68201f6-9d77-4818-820e-e5e796e9710a
Cache-Control public, max-age=21600
Expires: 21600
Content-Type: text/plain
Connection: Close
现在,在我的Silverlight客户端中,我需要访问此标头信息,但是使用BrowserHTTP堆栈,这是不可能的...所以我切换到ClientHTTP,这使我可以访问标题信息已退回。 但是,ClientHTTP堆栈不支持内容缓存:
这给我带来了麻烦.....我想要在生成新的资源之前将相同的资源退回6小时。
有没有办法充分利用两者......能够访问标题信息并拥有内容缓存?
TIA
索伦
答案 0 :(得分:0)
停止使用标头返回客户端代码所需的信息。
如果您使用raw或以某种消息格式(例如XML或JSON)编码在实体主体中包含所需信息,那么您可以继续使用BrowserHTTP并从其缓存中受益。
答案 1 :(得分:0)
使用标题是传达此信息的正确方法。这就是为什么它符合标准。 我不做Silverlight,但是我从那篇文章得到的是你现在需要实现缓存。使用BrowserHttp利用浏览器缓存机制。现在使用ClientHttp,您将更接近金属,您将不得不实施缓存。