使用带有CDN的回传

时间:2015-04-28 14:19:15

标签: asp.net webforms viewstate cdn

我们有一个基于Sitecore / Webforms的网站,我们希望在Akamai CDN后面运行,但我们在回发时遇到ViewState MAC验证问题。

我们已经为网站上的大多数核心表单解决了这个问题(将它们从CDN缓存中取出并直接为每个用户提供服务),但我们在每个用户的页脚中留下了一个简单的表单。回发到服务器的页面。

目前我们看到错误:

Validation of viewstate MAC failed.

我认为这是由CDN从原始请求缓存视图状态字段引起的,并且这些(显然)与其他用户不匹配。

当我们在多个服务器上运行此站点时,我们已经正确配置machinekey(我们已经能够使用postBackUrl设置回发到其他页面/ SSL实例/等)。 Akamai的。

当我们运行Asp.NET 4.5.2时,即使我们认为这是一个好主意,我们也无法尝试禁用viewstate MAC。

设置ViewStateMode=Disabled仍然会给我们留下一个微小的视图状态(可能是MAC)仍会导致问题。

我们是否可以从视图状态中删除会话依赖性?

我们可以用来复制这个的基本步骤:

  1. 浏览器A的请求页面 - Akamai缓存页面。
  2. 从浏览器A提交表单 - 成功!
  3. 浏览器B的请求页面 - Akamai提供缓存页面。
  4. 从浏览器B提交表单 - 错误!

1 个答案:

答案 0 :(得分:0)

不,Akamai CDN从不缓存POST请求。但是尝试添加表单以不缓存列表并尝试复制问题是个好主意。