asp.net-core - ASP.NET Core 3.1 HttpMessageHandler 清理周期
问题描述
我在调试日志中看到这些消息:
[23:29:12 DBG] HttpMessageHandler 在 120000 毫秒后过期,客户端“默认”{“EventId”:{“Id”:103,“名称”:“HandlerExpired”},“SourceContext”:“Microsoft.Extensions.Http.DefaultHttpClientFactory "}
[23:29:22 DBG] 使用 1 个项目开始 HttpMessageHandler 清理周期 {"EventId": {"Id": 100, "Name": "CleanupCycleStart"}, "SourceContext": "Microsoft.Extensions.Http.DefaultHttpClientFactory"}
[23:29:22 DBG] 1.9126 毫秒后结束 HttpMessageHandler 清理周期 - 已处理:0 项 - 剩余:1 项 {“EventId”:{“Id”:101,“Name”:“CleanupCycleEnd”},“SourceContext”: "Microsoft.Extensions.Http.DefaultHttpClientFactory"}
[23:29:32 DBG] 使用 1 个项目开始 HttpMessageHandler 清理周期 {"EventId": {"Id": 100, "Name": "CleanupCycleStart"}, "SourceContext": "Microsoft.Extensions.Http.DefaultHttpClientFactory"}
[23:29:32 DBG] 0.1306 毫秒后结束 HttpMessageHandler 清理周期 - 已处理:0 项 - 剩余:1 项 {“EventId”:{“Id”:101,“Name”:“CleanupCycleEnd”},“SourceContext”: "Microsoft.Extensions.Http.DefaultHttpClientFactory"}
这些消息永远不会结束,但我不会在我的应用程序中使用任何这些消息。我有一些未处理的物品,为什么我总是有一件物品?
这是我的代码Startup.cs
:
services.AddHttpClient("default", c =>
{
c.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");
c.Timeout = TimeSpan.FromMinutes(120);
}).ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
{
Proxy = WebRequest.DefaultWebProxy,
AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
});
解决方案
这个 github issue讨论了一个类似的问题,它似乎是默认行为。
如果您不想获取Microsoft.Extensions.Http.DefaultHttpClientFactory
类别的日志,您可以将其设置为“信息”或更高的日志级别。
"Microsoft.Extensions.Http.DefaultHttpClientFactory": "Information"
推荐阅读
- windows-10 - Windows userprofile 文件夹根据访问方式显示不同的项目
- javascript - React-Leaflet Map 不更新
- javascript - 在 React Native 中单击图标播放音频剪辑
- rest - Tibco BW 条件流
- sql - SQL:连接表格并将每个单元格除以另一个表格中的匹配单元格?
- android - 如果您正在开发 HTML5 网页,在 Android 手机上为图像编写文件路径的正确方法是什么?
- postgresql - 关于为 int 组合创建索引的建议。范围 + 整数 |Postgres
- image - 从 MATLAB 中的图像中选择灰色块
- node.js - grpc - 跨机器和跨语言
- php - Cake PHP 中前缀控制器中的 Flash 管理