ASP.NET Core 部署在Centos 中 偶尔出现
One or more errors occurred. (Cannot access a disposed object.Object name: ‘SocketsHttpHandler‘.)
之前的写法如下:
var httpclientHandler = new HttpClientHandler(); httpclientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, error) => true; httpclientHandler.AutomaticDecompression = DecompressionMethods.GZip; httpclientHandler.MaxRequestContentBufferSize = 102400; services.AddHttpClient("tmkhttp", option => { option.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"); option.Timeout = new TimeSpan(0, 0, 10); }).ConfigurePrimaryHttpMessageHandler(() => { return httpclientHandler; });
看提示应该是SocketsHttpHandler 资源释放了,没重新实例化。
在github上看到一个答案 说 ConfigurePrimaryHttpMessageHandler 里面不要直接return HttpClientHandler,要重新new 一下
改完后的如下:
services.AddHttpClient("tmkhttp", option => { option.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"); option.Timeout = new TimeSpan(0, 0, 10); }).ConfigurePrimaryHttpMessageHandler(() => { return new HttpClientHandler() { MaxRequestContentBufferSize = 102400 , AutomaticDecompression = DecompressionMethods.GZip , ServerCertificateCustomValidationCallback = (message, cert, chain, error) => true }; });
asp.net Core HttpClient 出现Cannot access a disposed object. Object name: 'SocketsHttpHandler' 的问题。
原文地址:https://www.cnblogs.com/wangjun8868/p/10722633.html
时间: 2024-10-29 03:08:07