Asp.net WebAPI生命周期/请求队列

Asp.net WebAPI生命周期/请求队列,asp.net,asp.net-web-api,performance-monitor,Asp.net,Asp.net Web Api,Performance Monitor,我有一个AngularJS应用程序,可以调用WebAPI。如果我记录发起请求的时间(在angluar控制器中)和OnActionExecuting运行的时间(在WebAPI控制器的操作过滤器中),我会注意到有时会有2秒的间隔。我假设此筛选器之前没有运行任何其他内容,这是由于请求被阻止/排队所致。我之所以认为这是因为如果我删除了所有其他数据调用,我就看不到这个差距 WebAPI一次可以处理的并行请求数是多少?我试图查看ASP.NET性能监视器,但找不到在哪里可以看到这些数据。有人能解释一下吗?这个

我有一个AngularJS应用程序,可以调用WebAPI。如果我记录发起请求的时间(在angluar控制器中)和OnActionExecuting运行的时间(在WebAPI控制器的操作过滤器中),我会注意到有时会有2秒的间隔。我假设此筛选器之前没有运行任何其他内容,这是由于请求被阻止/排队所致。我之所以认为这是因为如果我删除了所有其他数据调用,我就看不到这个差距


WebAPI一次可以处理的并行请求数是多少?我试图查看ASP.NET性能监视器,但找不到在哪里可以看到这些数据。有人能解释一下吗?

这个问题没有直接的答案,但最短的答案是

WebApi对此没有限制,限制来自您的服务器可以处理的内容以及您让它运行的代码的效率

。。。 但是,既然你问了,让我们考虑一些基本的事情,我们可以假设我们的服务器和我们的应用…< /P>
  • 并发连接
  • 典型的服务器以“c10k”之类的问题而闻名。。。因此,对并发连接的数量进行了严格限制

    假设每个WebApi调用都是从某个网页上的AJAX调用进行的,那么在出现问题之前,我们可以将连接数限制在10k左右

    2.与依赖性相关的管理费用

    如果我们考虑代码中的复杂性,那么你可能会遇到像SQL查询这样的瓶颈,我经常写的WebAPI控制器有10个+db查询的业务逻辑,这里的开销可能是你的问题?

  • 架空馈入
  • 服务器的网络带宽如何? 假设我们为每个呼叫传输1MB的数据,用这么大的消息阻塞1Gb/s的以太网线路不会花费太长时间

  • 处理开销
  • 假设您编写了一个执行复杂计算的Api(例如,复杂3D数据的网格生成),您很容易在每次请求时阻塞CPU一段时间

  • 超时
  • 假设服务器可以接受您的请求,并且请求是异步发出的,那么最大的问题是,您准备等待响应多长时间?假设这很短,那么在每个请求需要响应之前,您将减少有时间解决的问题的数量

    正如你所见,这并不是一个详尽的列表,但它概括了你所问问题的复杂性。也就是说,我认为WebApi(框架)是没有限制的,它实际上取决于它周围的基础设施,这些基础设施有限制,以确定什么是可能的