Chr*_*lew 14 c# kestrel-http-server asp.net-core
我的理解是ASP.NET Core中间件是在准备好处理请求时运行的.但是如果应用程序处于负载状态并且ASP.NET Core无法处理所有请求,那么它们会被置于某个"队列"中?我不知道这是否是Kestrel内部的一些托管队列,或者它是否与libuv有关.
我希望能够知道给定请求在此队列中花费了多长时间.HttpContext上有什么东西可以告诉我这个吗?
提前致谢
这个问题没那么容易。
如果您想跟踪所有时间,则必须执行很多步骤。在开始时为请求添加一个独特的图章或勾号,以便您可以一一识别它们。其次,创建一个处理程序,它拦截您的请求并记录时间。第三,为每个请求相关的方法添加一个日志记录点。第四 - 这将是一个惊喜 - 你不能做任何大的事情来减少这个时间,期望 IIS 的关于线程、并行请求、会话处理等的配置。第五 - 如果你的浏览器测量 2000 毫秒,你的服务器测量 200 毫秒,它不是 .NET 核心,而是你的代码/架构/配置。很抱歉告诉你坏消息。
使用 System.Diagnostics.Stopwatch 类来测量时间。
| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |