我的公司网络中正在运行以下代码(需要将C#更改为7.1+版本)。它可以在完整的.Net框架中工作,但不能在.Net core 2.1应用程序中工作?为什么? (检查https站点的证书将显示某些证书是由我公司颁发的)
public static async Task Main(string[] args)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
var client = new HttpClient();
var response = await client.GetAsync("https://usbtrustgateway.usbank.com/portal/");
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
.Net核心中的行client.GetAsync(...)
出现以下异常
引发的异常:System.Private.CoreLib.dll中的'System.Net.Http.HttpRequestException'(“无法建立SSL连接,请参阅内部异常。”)引发的异常:'System.Net.Http.HttpRequestException 'in System.Private.CoreLib.dll中(“无法建立SSL连接,请参阅内部异常。”)超链接:激活历史调试0.95s [15948]工作线程
内部异常是
远程主机强行关闭了现有连接
答案 0 :(得分:0)
我已经关注这个线程有一段时间了,我很好奇以下内容是否可以解决该问题。 .Net Core遇到了类似的问题。
在您的appsettings.json中,尝试添加...
“ DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER”:“ 0”
示例:
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "https://localhost:44349/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER": "0"
}
},