在webapi方法中处理多个请求,该方法在内部访问数据库

时间:2017-12-17 06:35:58

标签: c# iis asp.net-web-api2

我们正在使用webapi服务多个客户端请求,该服务器托管在iis服务器上。

iis如何处理来自客户的数千个请求?

1)在这种情况下,我们如何才能获得最佳性能? 2)制作webapi方法,async会有什么不同吗? 3)我们需要遵循哪些最佳实践?

提前致谢。

2 个答案:

答案 0 :(得分:1)

  

iis如何处理来自客户的数千个请求?

这取决于。实际上,即使IIS的限制可能不是您主要关注的问题,还有其他可能会影响IIS性能的事情,例如硬件。

  

在这种情况下,我们如何才能获得最佳表现?

你可以做很多事情,你可以使用队列系统,在许多情况下不需要让用户等待繁重的事务或非常复杂的逻辑。如果用户的请求涉及许多不同的复杂任务,您可以做到最小并返回给用户,其余的可以在后台完成。您可以使用队列系统来实现这种情况。

  

制作webapi方法,async会有什么不同吗?

不,因为async表示“允许此方法异步工作”或“允许此方法使用await运算符”。您应该知道如何使用concurrency而不仅仅是asynchronous programming。但是使用Tasks来处理繁重的事务,比如处理数据库和await async方法中的这些任务,是的,这将有助于您的服务器同时响应更多请求。

  

我们需要遵循哪些最佳做法

concurrency的充分理解将非常有帮助。此外,它不仅仅是WEB API所有可能影响您的Web应用程序性能的数据访问层,以及RDBMS中的索引甚至响应可能有所贡献。就像您的回复是XML一样,您可以使用JSON,因为它生成的数据比XML少,因此数据交换速度更快。你的问题非常广泛,这取决于它。这取决于IISWeb API甚至整个Web application

答案 1 :(得分:0)

您需要对此<button id="button_id" data-filter=".parkett" class="sub">Button</button> 有一个很好的理解。 以上答案以最佳方式解释。 此外,您可以阅读此MSDN文章,了解有关Concurrency

的更深入详细信息

Handling Concurrency with the Entity Framework in an ASP.NET MVC Application