我们在.NET 4.0下使用Sitecore 6.6并使用MVC 4。我们正在尝试在其中实现asyncontroller和async操作。
我们使用ajax请求调用此操作。我们已经设置了一个到该操作的路由,并且还将该路由添加到IgnoreUrlPrefixes配置属性中。
但是,在sitecore之外工作的相同操作只返回以下异常(包括堆栈跟踪):
[InvalidOperationException: The asynchronous action method 'Search' cannot be executed synchronously.]
System.Web.Mvc.Async.AsyncActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +133
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
System.Web.Mvc.<>c__DisplayClass13.<InvokeActionMethodWithFilters>b__10() +124
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +855026
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +855026
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +309
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +345
我在论坛中读到Sitecore同步执行(http://sdn.sitecore.net/forum//ShowPost.aspx?PostID=66991)。
我正在徘徊我需要采取哪些步骤才能从ajax请求中异步调用此操作?
我们无法使用.NET 4.5,因此需要使用旧式的异步操作,而不是使用&#39; await&#39;关键字
任何可以提供的帮助都会非常有用。
谢谢
答案 0 :(得分:1)
根据下表,遗憾的是,Sitecore 6.6不支持MVC 4,这可能是您看到这些错误的原因:https://kb.sitecore.net/articles/087164