2015-02-10 73 views
0

我們在.NET 4.0下使用Sitecore 6.6並使用MVC 4。我們試圖在其中實現一個asyncontroller和async動作。Sitecore:InvalidOperationException:異步操作方法'搜索'無法同步執行

我們使用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因此需要使用異步操作的舊樣式,而不是使用「等待」關鍵字

,可以提供將是非常有益的幫助。

感謝

回答

1

根據下表,不幸的是,MVC 4不Sitecore的6.6條的支持,這可能是你看到這些錯誤的原因:https://kb.sitecore.net/articles/087164

+0

謝謝,我結束了使用同步調用,而不是。 – Roooss 2015-02-11 10:18:07