ASP.NET Core 部署在Centos 中 偶尔出现git
One or more errors occurred. (Cannot access a disposed object.Object name: 'SocketsHttpHandler'.)github
以前的写法以下:spa
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 资源释放了,没从新实例化。code
在github上看到一个答案 说 ConfigurePrimaryHttpMessageHandler 里面不要直接return HttpClientHandler,要从新new 一下blog
改完后的以下:ip
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 }; });