我正在尝试运行我最近在.net core 2.1中在Kestrel上开发的API。
我的API通常会返回100 MB范围内的JSON对象。当我开始调试时,令我惊讶的是,当客户端和服务器都在本地主机上运行时,要花2-3分钟才能完成对我的API的请求(尽管我已经尝试过在两个不同的计算机(都是Windows 10)上使用相同的代码。
现在,我确实知道Kestrel并不是最高效的Web服务器,但我希望下载时间可能会达到几秒钟。
我已经反复调试了我的代码,并且能够确定此问题似乎是由红est而不是我的代码造成的。为了进一步确认这一点,我启用了静态文件支持,并将其中一个JSON文件的副本放置在wwwroot文件夹中。下载也花了几分钟。就是说,在控制台中Kestrel服务器的输出中,我看到它报告请求仅在309.82ms内完成。这与Google Chrome浏览器的网络检查器有关,后者表明,绝大多数时间都花在了数据传输上。
我尝试在调试和发布模式下运行,以防某些问题影响调试模式,但结果相同。
我还尝试了禁用MaxResponseBufferSize来查看是否会产生影响,但同样,似乎没有。
我也尝试过单独使用Kestrel,IIS Express和常规IIS来运行它。时间都非常相似。
有人知道这个问题可能在哪里吗?或者还有其他可以尝试的事情?