.NET Framework 和 .NET Core 2.0 及更低版本中由 HttpClient 使用的默认消息处理程序为HttpClientHandler。

从 .NET Core 2.1 开始,类SocketsHttpHandler提供了更高级别的 HTTP 网络类(例如HttpClient )使用的实现。使用SocketsHttpHandler提供了许多优点:
  • 与之前的实施相比,性能显着提高。
  • 消除平台依赖性,从而简化部署和服务。例如,libcurl不再依赖于 macOS 的 .NET Core 和 Linux 的 .NET Core。
  • 所有 .NET 平台上的行为一致。
如果不需要进行此更改,并且您使用的是 .NET Core 2.1-3.1,则可以通过多种方式将应用程序配置为使用较旧的System.Net.Http.HttpClientHandler类:
1.通过调用AppContext.SetSwitch方法,如下所示:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
 
2.通过在.netcore.runtimeconfig.json配置文件中定义开关System.Net.Http.UseSocketsHttpHandler:
"runtimeOptions": {
"configProperties": {
"System.Net.Http.UseSocketsHttpHandler": false
}
}
3.通过定义名为的环境变量 DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER 并将其设置为false或0。
需要注意的是,从 .NET 5 开始,这些配置选项不可用。

HttpClientHandler VS SocketsHttpHandler的更多相关文章

  1. .Netcore HttpClient源码探究

    源码搜索与概述 搜索HttpClient源码 https://source.dot.net/#System.Net.Http/System/Net/Http/HttpClient.cs 1.HttpC ...

  2. C# HttpClient使用和注意事项,.NET Framework连接池并发限制

    System.Net.Http.HttpClient 类用于发送 HTTP 请求以及从 URI 所标识的资源接收 HTTP 响应. HttpClient 实例是应用于该实例执行的所有请求的设置集合,每 ...

  3. asp.net Core HttpClient 出现Cannot access a disposed object. Object name: 'SocketsHttpHandler' 的问题。

    ASP.NET Core 部署在Centos 中 偶尔出现 One or more errors occurred. (Cannot access a disposed object.Object n ...

  4. HttpClient, HttpClientHandler, and WebRequestHandler Explained

    原文地址 https://blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-and-webrequest ...

  5. HttpClientHandler

    string url = "http://"; //创建HttpClient(注意传入HttpClientHandler) var handler = new HttpClient ...

  6. HttpClient, HttpClientHandler, and WebRequestHandler介绍

    注:本文为个人学习摘录,原文地址:https://blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-an ...

  7. .NET Core 2.1 源码学习:看 SocketsHttpHandler 如何在异步方法中连接 Socket

    在 .NET Core 2.1 中,System.Net.Sockets 的性能有了很大的提升,最好的证明是 Kestrel 与 HttpClient 都改为使用 System.Net.Sockets ...

  8. [翻译] .NET Core 2.1 Preview 1 发布

    [翻译] .NET Core 2.1 Preview 1 发布 原文: Announcing .NET Core 2.1 Preview 1 今天,我们宣布发布 .NET Core 2.1 Previ ...

  9. .NET Core 2.1 Preview 2发布 - April 10, 2018

    我们今天宣布发布 .NET Core 2.1 Preview 2.这也是我们在接下来的两到三个月内接近最终发布的版本,该版本现已准备好进行广泛的测试.我们希望您有任何反馈意见. ASP.NET Cor ...

  10. WebApiClient的SteeltoeOSS.Discovery扩展

    1 背景 从园子里看到一些朋友在某些项目开发中,选择的架构是spring cloud搭建底层微服务框架,dotnet core来编写业务逻辑,SteeltoeOSS.Discovery是dotnet和 ...

随机推荐

  1. 人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化)、CNN+LSTM模型建模

    "AI Earth"人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化).CNN+LSTM模型建模 1.气象海洋预测-数据分析 数据分 ...

  2. Python 使用SQLAlchemy数据库模块

    SQLAlchemy 是用Python编程语言开发的一个开源项目,它提供了SQL工具包和ORM对象关系映射工具,使用MIT许可证发行,SQLAlchemy 提供高效和高性能的数据库访问,实现了完整的企 ...

  3. C/C++ 内存转储与获取DLL加载

    CREATE_PROCESS_DEBUG_EVENT 创建进程的调试事件.CREATE_PROCESS_DEBUG_INFO结构体描述了该类调试事件的详细信息 OUTPUT_DEBUG_STRING_ ...

  4. SpringCloud-Config配置中心搭建保姆级教程

    一.分布式配置中⼼ 在使⽤微服务架构开发的项⽬中,每个服务都有⾃⼰的配置⽂件(application.yml),如果将每个服务的配置⽂件直接写在对应的服务中,存在以下问题: 1. 服务开发完成之后,需 ...

  5. Docker从认识到实践再到底层原理(三)|Docker在Centos7环境下的安装和配置

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...

  6. 手把手带你上手swagger3

    配置POM 只需要加一个依赖,并且要注意,swagger3在springboot2.5版本以上会出现问题 <dependency> <groupId>io.springfox& ...

  7. 【CSS】如何复原被隐藏的滚动条?记一个看似简单的样式问题所引发的一系列思考

    壹 ❀ 引 故事的起因是这样的,某一个同事在封装了一个TableList组件,用于做表格视图渲染,但出于研发经验考虑上,他可能觉得表格若出滚动条可能会引发某些不可预估的小问题(毕竟一个基础组件会被用于 ...

  8. NC24911 数独挑战

    题目链接 题目 题目描述 数独是一种填数字游戏,英文名叫 Sudoku,起源于瑞士,上世纪 70 年代由美国一家数学逻辑游戏杂志首先发表,名为 Number Place,后在日本流行,1984 年将 ...

  9. Linux操作系统下查询NVMe盘符、Slot ID和Bus ID的对应关系

    在拆卸NVMe PCIe 固态硬盘时,需要查询Linux操作系统下NVMe盘符.Slot ID和Bus ID的对应关系. 操作步骤打开操作系统命令终端.依次执行cd /sys/bus/pci/slot ...

  10. 基于HTTP2/3的流式请求/响应如何实现?

    我想很多人已经体验过GRPC提供的三种流式消息交换(Client Stream.Server Stream和Duplex Stream)模式,在.NET Core上构建的GRPC应用本质上是采用HTT ...