Asp.net mvc 4 异步等待MVC操作返回任务而不是ActionResult
我的行动如下:Asp.net mvc 4 异步等待MVC操作返回任务而不是ActionResult,asp.net-mvc-4,async-await,elmah,Asp.net Mvc 4,Async Await,Elmah,我的行动如下: public async Task<ActionResult> Pair(string id) { try { DocuSignAPIManager docuSignAPIManager = new DocuSignAPIManager(); DocuSignEsignatureAuthContainer authContainer = await docuSignAPIMana
public async Task<ActionResult> Pair(string id)
{
try
{
DocuSignAPIManager docuSignAPIManager = new DocuSignAPIManager();
DocuSignEsignatureAuthContainer authContainer = await docuSignAPIManager.Pair(User.Identity.Name, id).ConfigureAwait(false);
DocuSignManager.Instance.Pair(User.Identity.Name, authContainer);
}
catch(Exception e)
{
ErrorManager.Instance.LogError(e);
}
return new HttpStatusCodeResult(200);
}
为了进行测试,我只是使用以下URL从web浏览器调用该操作:
http://localhost:20551/CharteredSurveyor/Pair/password
我真的不明白问题是什么-有人能帮忙吗?来自ELMAH的
ErrorHandlingControllerFactory
返回一个自定义操作调用程序,它使用该调用程序来确保其HandleErrorWithElmaAttribute
应用于控制器。它从不提供异步操作调用程序,因此不理解async/await
两个变通办法
ControllerBuilder.Current.SetControllerFactory(new ErrorHandlingControllerFactory())
的调用,只需使用GlobalFilters.filters.add(new HandleErrorWithElMaAttribute())将HandleErrorWithElMaAttribute
添加到全局筛选器中即可代码>
公共类authController:Controller
到
公共类authController:AsyncController
我使包含导致该错误的异步操作的控制器类从AsyncController类继承,而不是从默认控制器类继承
我发现我认为这只在MVC4中有效-你肯定在使用版本4吗?Dean,是的,我肯定在运行MVC4-在具有类似签名的不同控制器上有另一个操作-唯一真正的区别是它接受FormCollection-真的无法理解…它在没有异步和任务的情况下工作吗?是的,它在没有异步和任务的情况下按预期工作。您的目标是.NET 4.5吗?如果是这样的话,请上传一个最小的复制要点(包括csproj文件)。Dean,谢谢你的反馈-我最终选择了选项2-更少的代码,最终结果是一样的(至少在我的情况下)。
http://localhost:20551/CharteredSurveyor/Pair/password