Ros*_*oss 1 c# asp.net-mvc asynchronous asynccontroller asp.net-mvc-4
我正在尝试将一些方法转换为异步,并从我正在修改的控制器中的一个简单示例开始:
public class MyAPIController : AsyncController
{
public async Task<JsonResult> List()
{
return Json(123456, JsonRequestBehavior.AllowGet);
}
...
}
Run Code Online (Sandbox Code Playgroud)
当我测试方法而不是Json结果时,我得到字符串值"System.Threading.Tasks.Task`1 [System.Web.Mvc.JsonResult]",我已经通过Fiddler和浏览验证了这一点.
该项目已手动升级到.NET45.搜索表明这可能是组件版本不正确的问题,但检查项目文件和Process视图表明在运行时引用和加载了正确的类型.
有人有任何调试技巧吗?
谢谢.
在剥离了90%的代码以使其正常工作并逐渐将其添加回来直到失败后,结果发现正在使用自定义的ControllerActionInvoker.修复是将自定义调用程序更改为从AsyncControllerActionInvoker继承并覆盖BeginInvokeAction而不是InvokeAction.AsyncControllerActionInvoker可以处理异步和同步方法.