【问题标题】:ASP.NET MVC async actions: who waits for result? [duplicate]ASP.NET MVC 异步操作:谁在等待结果? [复制]
【发布时间】:2015-09-04 18:07:23
【问题描述】:

我正在尝试熟悉 TPL 并在 mvc 中使用它。所有指南中的一切看起来都不错(将操作标记为异步,使用等待 => 利润!)但我不太明白。

据我了解,调用链如下所示:客户端发送 http 请求 → Web 服务器获取请求 → mvc 操作处理程序使用路由规则找到控制器和操作并执行它 → 操作将结果写入响应。

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

【问题讨论】:

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


【解决方案1】:

我会尽量解释:

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

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

如果我正确理解您的问题,我希望它能提供一些全球视野。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 2022-01-04
    • 2018-03-12
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多