C# 在内部访问数据库的webapi方法中处理多个请求

C# 在内部访问数据库的webapi方法中处理多个请求,c#,iis,asp.net-web-api2,C#,Iis,Asp.net Web Api2,我们使用webapi为多个客户端请求提供服务,webapi托管在iis服务器上 iis将如何处理来自客户端的数千个请求 1) 在这种情况下,我们如何实现最佳性能? 2) 做webapi方法,异步会有什么不同吗? 3) 我们需要遵循哪些最佳实践 提前谢谢 iis将如何处理来自客户端的数千个请求 视情况而定。实际上,即使IIS的限制可能不是您主要关心的问题,也有其他可能影响IIS性能的因素,例如硬件 在这种情况下,我们如何实现最佳性能 您可以做很多事情,您可以使用队列系统,在许多场景中不需要让用户等

我们使用webapi为多个客户端请求提供服务,webapi托管在iis服务器上

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

1) 在这种情况下,我们如何实现最佳性能? 2) 做webapi方法,异步会有什么不同吗? 3) 我们需要遵循哪些最佳实践

提前谢谢

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

视情况而定。实际上,即使IIS的限制可能不是您主要关心的问题,也有其他可能影响IIS性能的因素,例如硬件

在这种情况下,我们如何实现最佳性能

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

做webapi方法,异步会有什么不同吗

否,因为
async
表示“允许此方法异步工作”或“允许此方法使用
wait
运算符”。您应该知道如何使用
并发
而不仅仅是
异步编程
。但是使用
任务
处理繁重的事务,例如处理数据库和
等待
异步
方法中执行这些任务,是的,这将帮助服务器同时响应更多请求

我们需要遵循哪些最佳实践


很好地理解
并发性将非常有帮助。此外,这不仅仅是关于
webapi
的问题,从数据访问层到
RDBMS
中的索引,一切都可能影响WEB应用程序的性能,即使是响应也可能有影响。例如,如果您的响应是
XML
,您可以使用
JSON
,因为它生成的数据相对少于
XML
,因此数据交换更快。你的问题很广泛,这要视情况而定。它不仅仅是关于
IIS
webapi
,甚至是整个
Web应用程序
,这取决于它

为此,您需要对并发性有很好的理解。 上面的答案以最好的方式解释了这一点。 此外,您还可以阅读这篇MSDN文章,了解有关并发性的更深入的详细信息


IIS从线程池启动线程以处理您的请求。1) 不使用iis和webapi?如果必须,请使用最佳硬件2)
async
方法只有在io阻塞(例如,您正在等待网络或磁盘读取)的情况下才能提高性能3)感谢您的快速响应。1) 不使用iis和webapi?如果必须的话,使用最好的硬件——OK 2)异步方法只有在io阻塞(例如,您正在等待网络或磁盘读取)的情况下才能提高性能——是的,有db级别的调用。感谢您的快速响应。1) 在webapi术语的情况下,我们如何实现排队系统?2) 在每个客户端请求中,我们都要处理繁重的数据库事务。在每个响应中,根据客户端请求返回数据。3) 我们使用的是json格式而不是xml。