【问题标题】:Asynchronous controller and ASP.NET thread handling异步控制器和 ASP.NET 线程处理
【发布时间】:2013-04-12 17:44:35
【问题描述】:

我有一个 Web 应用程序,Web 层是 ASP.NET MVC 3 Web 应用程序,服务层是 WCF,数据库是 MSSQL

在这篇文章:http://blogs.msdn.com/b/tmarq/archive/2010/04/14/performing-asynchronous-work-or-tasks-in-asp-net-applications.aspx 中,它提到我应该进行异步处理“当切换线程的好处超过上下文切换的成本时。”,“例如, 如果您向远程服务器发出异步 Web 服务请求"

这是否意味着,在每个请求中,我都应该尽可能多地尝试使用异步处理(在 ASP.NET MVC 中,我假设它是异步控制器而不是 ASP.NET 中的 PageAsyncTask,如果我错了,请纠正我) 每当调用 WCF 服务时(或者如果我不使用 WCF 服务,那么每当我调用数据库时)以增加服务器的吞吐量,增加服务器一次可以处理的请求数?

另一个有点相关的问题:有没有人知道或可以向我指出一篇文章,解释从这样的 Web 层连接到 WCF 时的连接限制?我听说 WCF 的限制是一次 5 个并发连接,但无法确认。如果是 5 个并发连接,那么即使我增加 web 层的吞吐量,是否意味着瓶颈在 WCF 中?

非常感谢

【问题讨论】:

    标签: asp.net-mvc multithreading wcf asynchronous


    【解决方案1】:

    这是否意味着,在每个请求中,我都应该尽可能多地尝试使用异步处理

    只有当您有 I/O 操作(远程 HTTP 调用,如 WCF 服务调用、数据库调用……)时,这样做才有好处。但是,只有在执行大量负载测试并确定同步调用是您的应用程序的瓶颈时,您才应该这样做,以防您有如此高的处理要求。在大多数情况下,异步代码的复杂性和难以发现错误的风险超过了好处。

    有谁知道或可以向我指出一篇文章,解释从这样的 Web 层连接到 WCF 时的连接限制?

    我不知道存在这样的限制。

    【讨论】:

    • 谢谢,关于 WCF 连接限制,我在这里看到了讨论:stackoverflow.com/questions/686466/…,我不确定这是否意味着默认情况下 WCF 只能处理 5 个并发连接?
    猜你喜欢
    • 2014-07-04
    • 2015-08-24
    • 2023-03-27
    • 2013-09-10
    • 2017-10-24
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多