无法从 soap c# SoapHttpClient Protocol 创建 SSL/TLS 安全通道



无法从 C# 代码访问 https url。 尝试访问 https://blabla URL 并访问 get 方法。 这是从 WSDL 生成的 SOAP C# 类。 它可以在 SOAP UI 中工作,没有任何问题,但无法从代码中工作。我收到错误为"无法创建 SSL/TLS 安全通道">

我已经遇到过很多次了。

您需要在执行该方法之前设置SecurityProtocol。您尝试发出的 HTTP 请求需要使用传输层安全性发送请求。

要在请求中支持 TLS,请在触发 HTTP 请求之前使用以下代码(这会将其设置为 TLS 1.2):System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

您可以从此 URL 中找到有关不同设置的更多信息: https://learn.microsoft.com/en-us/dotnet/api/system.net.securityprotocoltype?view=netcore-3.0

如果发现此枚举不存在(因为你使用的是旧版本的 .NET),则可以使用上面链接中的枚举整数值。此示例支持 TLS 1.2。System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;

我不确定,除非以下工作。但是您提到您已经尝试设置SecurityProtocol枚举。可能是您的 Web 服务连接希望受 TLS 1.3 支持。

请尝试以下代码,并分别取消注释以System.Net.ServicePointManager.SecurityProtocol开头的每一行,以查看它是否解决了您的问题:

// Uncomment one of these four to see if it works
//System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
//System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;
//System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls13;
//System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)12288;
using (var client = new WebService())
{
data = new JavaScriptSerializer().Deserialize<List<LookupModel>>(client.GetLookupDetails());
TempData["lookupData"] = data;
}

相关内容

  • 没有找到相关文章

最新更新