ASP.NET MVC异步操作:谁等待结果?

时间:2015-09-04 09:30:48

标签: c# asp.net-mvc asynchronous task-parallel-library

我试图熟悉TPL并在mvc中使用它。在所有指南中看起来都很好(将操作标记为async,使用await =>获利!)但我并不是真的理解它。

据我所知,调用链看起来像这样:客户端发送http请求→Web服务器获取请求→mvc操作处理程序使用路由规则查找控制器和操作并执行它→操作将结果写入响应。

但是:路由器等待行动的魔力是什么?谁(以及如何?)处理此链中的第一个异步方法?

1 个答案:

答案 0 :(得分:0)

我会按照我的理解尝试解释:

谁在等待:您的服务器,例如IIS。路由器没有像魔术那样做任何事情,只需通过简单的mvc管道运行,并在其中一个级别执行一次长时间的操作。

如何等待:如果您知道您的应用有一些长时间运行的任务,那么您应该这样做 更改Web服务器中的某些配置以实现高并发性。您可以阅读如何在那里完成Server Configuration for High Concurrency/High Latency Web Service Calls。它可以防止HTTP 503状态。

如果我理解你的问题,我希望它能提供一些全球性的观点。