The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.的解决办法-程序旅途

.NET6 使用 HttpClient 请求 https 报如下错误:

The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing

这个错误并不是一开始就有,而是跑了挺久,忽然有一天自己出现的。

解决办法

我出现这个问题,重启程序后就正常了。如果重启后依然存在,可以按照下面的方法解决。

方法1:添加环境变量

可以在 /etc/profile.d/ 中 创建 dotnet.sh,添加

export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0

或者直接执行

echo "export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0" >> /etc/profile.d/dotnet.sh

执行生效命令

source /etc/profile.d/dotnet.sh

env 命令查看确实已经生效。

方法2

发布的程序会包含一个 “xxx.runtimeconfig.json”文件,在 configProperties 节点添加

 "System.Net.Http.UseSocketsHttpHandler": false

The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.的解决办法-程序旅途

参考

设置环境变量:CentOS7设置环境变量 (freecplus.net)

Source命令:Linux中source命令的使用方式 | 《Linux就该这么学》 (linuxprobe.com)

错误分析:国产化之银河麒麟.netcore3.1访问https服务的两个问题-爱代码爱编程 (icode.best)