首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure CDN不缓存控制器响应

Azure CDN不缓存控制器响应
EN

Stack Overflow用户
提问于 2013-10-19 12:46:57
回答 1查看 574关注 0票数 0

我将本文末尾的代码放在MVC控制器方法中:http://msdn.microsoft.com/en-us/library/windowsazure/gg680299.aspx

我为cdn配置了cname,除了我觉得cdn没有缓存之外,所有这些都运行良好:)

有CDN url http://cdn.services.idemkvrachu.ru/services/BranchLogo/82f204fe-bb1d-4204-b817-d424e1284b17/E0F4F2AE-B6C2-4516-BE7C-59B649E2C5AC?lastUpdated=635169430040919922&width=499

这是原始的url http://prm.idemkvrachu.ru/cdn/services/BranchLogo/82f204fe-bb1d-4204-b817-d424e1284b17/E0F4F2AE-B6C2-4516-BE7C-59B649E2C5AC?lastUpdated=635169430040919922&width=499

这是我的密码:

代码语言:javascript
复制
Response.Cache.SetExpires(DateTime.Now.AddDays(14));        
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetLastModified(blob.ChangDateOfs.DateTime);
return File(bytes, format);

当我检查时间接收图片从原始链接和cdn -我发现时间更高的cdn。

此外,我尝试更改blob.ChangDateOfs,并比较最后修改的头从cdn响应:它立即改变。

我的密码怎么了?也许这个头破坏了cdn缓存缓存控制的公共,no-cache="Set-Cookie"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-20 16:04:39

要解决缓存问题,您要做的第一件事是验证您的内容是否实际被缓存。

为此,您可以添加值为2的included头。

代码语言:javascript
复制
C:\Azure\Tools\wget\bin>wget -S --header "X-LDebug:2" http://cdn.services.idemkvrachu.ru/services/BranchLogo/82f204fe-bb1d-4204-b817-d424e1284b17/E0F4F2AE-B6C2-4516-BE7C-59B649E2C5AC?lastUpdated=635169430040919922&width=499

  Cache-Control: public, no-cache="Set-Cookie"

  Set-Cookie: ASP.NET_SessionId=nnxb3xqdqetj0uhlffdmtf03; path=/; HttpOnly

  Set-Cookie: idCity=31ed5892-d3cb-45eb-bd4f-526cd65f5302; domain=idemkvrachu.cloudapp.net; 

  X-Cache: MISS from cds173.sat9.msecn.net

如您所见,您正在将Cache-Control头设置为no-cache="Set- cookie ",然后设置cookie。这是告诉CDN不要缓存内容。由于您的代码只将缓存控件设置为Public,所以假设您的web.config或aspx页面中有一个设置,该设置正在修改缓存控制头以添加无缓存=“Set-Cookie”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19466181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档