ASP.NET Core中的ServicePointManager

dev*_*r82 14 .net-core asp.net-core asp.net-core-1.0

我正在尝试将现有的类库代码转换为.NET Core类库.在static构造函数中的代码中,我有以下内容:

ServicePointManager.DefaultConnectionLimit = 100;
ServicePointManager.Expect100Continue = false;
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,ServicePointManager在.NET Core中不再可用,WinHttpHandler现在应该使用(.net core中的ServicePointManager.DefaultConnectionLimit?).

我的问题是究竟是什么ServicePointManager以及正在设置的属性是什么?

WinHttpHandlerstatic作为ServicePointManager,所以我不得不创建一个实例来设置这些属性?我是否需要更改所有的http调用才能使用该实例?

小智 11

WinHttpHandler继承自HttpMessageHandler,所以您可以在构造时将其作为参数传递,HttpClient如下所示:

WinHttpHandler httpHandler = new WinHttpHandler();
httpHandler.SslProtocols = SslProtocols.Tls12;

HttpClient client = new HttpClient(httpHandler);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Pet*_*ter 5

从.v2.0版的.NET Core中可以使用ServicePointManager

程序集System.Net.ServicePoint,版本= 4.0.0.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51

也就是说,我使用以下命令实现了HTTP Client调用:

System.Net.Http.HttpClientHandler handler;  // use DI etc to create 
if (options.SkipSsl)  // config driven
    handler.ServerCertificateCustomValidationCallback = (req, cer, ch, err) => true;
Run Code Online (Sandbox Code Playgroud)

参见/sf/answers/3117805001/