c# - MVC 3 - 如何在异步 WCF 调用后立即 RedirectToAction

标签 c# asp.net-mvc wcf asp.net-mvc-3 asynchronous

如何让 MVCcontroller 方法异步调用长时间运行的 WCF 任务,并在异步调用触发后立即重定向?

我已将 WCF 服务引用配置为“生成异步操作”,但是当调用该方法时,我可以在调试器中看到代码单步执行并传递“RedirectToAction("RedirectToActionTestCompleted")”行,但浏览器不会重定向,直到 WCF 任务完成。

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult About()
    {
        return View();
    }

    public ActionResult RedirectToActionTest()
    {
        Service1Client client = new Service1Client();
        client.TestWcfCallAsync();
        return RedirectToAction("RedirectToActionTestCompleted");
    }

    public ActionResult RedirectToActionTestCompleted()
    {
        return View();
    }
}

以及WCF服务方法

public void TestWcfCall()
{
    Thread.Sleep(30000); //30 seconds
}

为什么网页等待 WCF 方法完成?

最佳答案

异步方法的重点是它们不应该阻塞。您的测试方法不是异步的。

使用真正的异步 WCF 调用和异步 Controller = 不会出现任何阻塞。

关于c# - MVC 3 - 如何在异步 WCF 调用后立即 RedirectToAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287670/

相关文章:

c# - 尝试在 Entity Framework 核心中添加数据库迁移时,为什么会出现 contentRootPath null 异常?

c# - 错误 CS1644 : Feature `null propagating operator' cannot be used because it is not part of the C# 4. 0 语言规范

sql-server - 防止应用程序外部访问数据库

wcf - 无法从配置文件中找到具有名称和契约(Contract)的端点元素

c# - 如何根据需要指定 OperationContract 的参数

c# - JSON 将自定义 C# 结构序列化为字符串,而不是对象

c# - 返回 BaseClass 的任意子类的 BaseClass 方法

javascript - 带有 JQuery 数据表的 Core 2 MVC

c# - 林克 : Select multiple values and assign to select with specific option/value

c# - IIS6 中托管的 WCF 服务中的默认目录?