我将本文末尾的代码放在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
这是我的密码:
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"?
发布于 2013-10-20 16:04:39
要解决缓存问题,您要做的第一件事是验证您的内容是否实际被缓存。
为此,您可以添加值为2的included头。
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”。
https://stackoverflow.com/questions/19466181
复制相似问题