文章内容

2018/5/4 10:45:28,作 者: 黄兵

现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始

最近在使用C#异步的时候,报如下错误:

现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始。如果此异常在执行 Page 时发生,请确保 Page 标记为 <%@ Page Async="true" %>。此异常也可能表明试图调用“异步无效”方法,在 ASP.NET 请求处理内一般不支持这种方法。相反,该异步方法应该返回一个任务,而调用方应该等待该任务。

出现这个错误的原因:

因为控制器上面没有实现异步,开始代码如下:

public ActionResult DownloadImages()
{
    BlogAppCore.zhihu.zhihu_comm_json json = new BlogAppCore.zhihu.zhihu_comm_json();
    string result = json.SaveZhihuImagesToLocal().ToString();

    return Content(result);
}

上面代码有问题,截图如下:


修改之后代码如下:

public async Task DownloadImages()
{
    BlogAppCore.zhihu.zhihu_comm_json json = new BlogAppCore.zhihu.zhihu_comm_json();
    bool result =await json.SaveZhihuImagesToLocal();

    return Content(result.ToString());
}

上面代码有问题,截图如下:

之后调试,顺利通过。


参考资料:stmpclient sendasync() 发送邮件失败 现在无法进行异步操作,求助大神,如何修改?


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - 现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始

分享到:

发表评论

评论列表