WFFM 表单多次提交
WFFM form submitting multiple times
当我提交我的 WFFM 表格时,我可以通过来自网络的两个电话看到,
在我的 QA 环境中它工作正常但在我的 PROD 中它失败了。
请让我知道这个问题的可能案例
下面是我的异常日志
6840 06:57:02 ERROR The anti-forgery cookie token and form field token
do not match. Exception: System.Web.Mvc.HttpAntiForgeryException
Message: The anti-forgery cookie token and form field token do not
match. Source: System.Web.WebPages at
System.Web.Helpers.AntiXsrf.TokenValidator.ValidateTokens(HttpContextBase
httpContext, IIdentity identity, AntiForgeryToken sessionToken,
AntiForgeryToken fieldToken) at
System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBase
httpContext, String cookieToken, String formToken) at
Sitecore.Forms.Mvc.Controllers.Filters.WffmValidateAntiForgeryTokenAttribute.OnAuthorization(AuthorizationContext
filterContext) at
System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext
controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
at
System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback
asyncCallback, Object asyncState)
6840 06:57:02 WARN [WFFM] CurrentSession is not initialized 6840
06:57:02 WARN Web Forms for Marketers: an exception 'The anti-forgery
cookie token and form field token do not match.' has occured while
trying to execute an action ''. 9292 06:57:04 ERROR There was an
attempt to do multiple submits within a time interval, specified in
the "WFM.LimitMultipleSubmits.IntervalInSeconds" setting! Exception:
System.Security.SecurityException Message: There was an attempt to do
multiple submits within a time interval, specified in the
"WFM.LimitMultipleSubmits.IntervalInSeconds" setting! Source:
Sitecore.Forms.Mvc at
Sitecore.Forms.Mvc.Controllers.Filters.WffmLimitMultipleSubmitsAttribute.OnAuthorization(AuthorizationContext
filterContext) at
System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext
controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
at
System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback
asyncCallback, Object asyncState)
9292 06:57:04 WARN [WFFM] CurrentSession is not initialized 9292
06:57:04 WARN Web Forms for Marketers: an exception 'There was an
attempt to do multiple submits within a time interval, specified in
the "WFM.LimitMultipleSubmits.IntervalInSeconds" setting!' has occured
while trying to execute an action ''. ManagedPoolThread #7 06:57:42
INFO Health.PrivateBytes: 905,527,296
最终,通过在组件级别以及站点定义中删除 WFFM 表单上的缓存解决了这个问题。
(但现在正在寻找如何在不缓存 WFFM 表单的情况下单独缓存页面)
当我提交我的 WFFM 表格时,我可以通过来自网络的两个电话看到,
在我的 QA 环境中它工作正常但在我的 PROD 中它失败了。
请让我知道这个问题的可能案例
下面是我的异常日志
6840 06:57:02 ERROR The anti-forgery cookie token and form field token do not match. Exception: System.Web.Mvc.HttpAntiForgeryException Message: The anti-forgery cookie token and form field token do not match. Source: System.Web.WebPages at System.Web.Helpers.AntiXsrf.TokenValidator.ValidateTokens(HttpContextBase httpContext, IIdentity identity, AntiForgeryToken sessionToken, AntiForgeryToken fieldToken) at System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBase httpContext, String cookieToken, String formToken) at Sitecore.Forms.Mvc.Controllers.Filters.WffmValidateAntiForgeryTokenAttribute.OnAuthorization(AuthorizationContext filterContext) at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState)
6840 06:57:02 WARN [WFFM] CurrentSession is not initialized 6840 06:57:02 WARN Web Forms for Marketers: an exception 'The anti-forgery cookie token and form field token do not match.' has occured while trying to execute an action ''. 9292 06:57:04 ERROR There was an attempt to do multiple submits within a time interval, specified in the "WFM.LimitMultipleSubmits.IntervalInSeconds" setting! Exception: System.Security.SecurityException Message: There was an attempt to do multiple submits within a time interval, specified in the "WFM.LimitMultipleSubmits.IntervalInSeconds" setting! Source: Sitecore.Forms.Mvc at Sitecore.Forms.Mvc.Controllers.Filters.WffmLimitMultipleSubmitsAttribute.OnAuthorization(AuthorizationContext filterContext) at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState)
9292 06:57:04 WARN [WFFM] CurrentSession is not initialized 9292 06:57:04 WARN Web Forms for Marketers: an exception 'There was an attempt to do multiple submits within a time interval, specified in the "WFM.LimitMultipleSubmits.IntervalInSeconds" setting!' has occured while trying to execute an action ''. ManagedPoolThread #7 06:57:42 INFO Health.PrivateBytes: 905,527,296
最终,通过在组件级别以及站点定义中删除 WFFM 表单上的缓存解决了这个问题。 (但现在正在寻找如何在不缓存 WFFM 表单的情况下单独缓存页面)