在各种技术博客/网站上都有报道称,与asp.net核心一起引入的新web服务器kestrel具有比IIS更高的性能优势,因为它底层使用了基于单线程事件循环模型的libuv库。
我不能理解的是,如果我在C#中使用异步等待I/O任务,并使用IIS而不是Kestrel,这有什么不同。因为async await也是一个非阻塞调用,所以我无法理解吞吐量/性能的好处。
请有人用简单的话来详细说明这一点。
我知道kestrel是跨平台的,但我的问题是关于使用kestrel我应该获得的性能/throughput的好处,所以让我重新表达我的问题,如果我只针对Windows,我使用kestrel与IIS会获得任何性能好处吗?我经历过的大多数链接都指出Kestrel使用libuv,因此它提供了一些性能优势,但没有详细说明它在做什么不同,这使得它更快。如果我不使用任何IIS模块,那么性能是否可以与之相比
发布于 2018-04-29 23:32:43
是否使用async / await关键字与是否使用IIS或Kestrel无关。
IIS只能在Microsoft Windows操作系统上运行,通常是Windows Server,但例如Windows 10也可以运行IIS。
Kestrel是一种跨平台的web服务器,根据服务器操作系统的不同,它可以托管在IIS / Apache等之后。
有关IIS和Kestrel的更深入的解释以及跨平台的机会,请参阅ASP.Net Core Web Servers;有关异步/等待的更详细的解释,请尝试using async / await。
https://stackoverflow.com/questions/50087924
复制相似问题