我有一个相同的问题here,但在某些情况下它对我不起作用,我将在此进行解释。
该问题的一个答案是将其更改为ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
,但对于使用较新.Net
版本但我拥有.Net 4.0
版本的用户来说,因此下一个问题的答案对我有所帮助将其设置为
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
可以,但是可以在Windows 10, Windows 7, XP....
上使用,但是不能用于Windows Server 2003
,这是因为Windows server 2003
不支持TLS 1.1
或TLS 1.2
。
解决方案是检查应用程序启动时的窗口,然后将SecurityProtocol
设置为这样的窗口:
if (Environment.OSVersion.Version.Major == 10 || Environment.OSVersion.Version.Major == 6)
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
}
else if(Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor == 2)
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
}
但是标题出现错误,我猜是因为我使用的是旧版本的.Net 4.0
,然后SecurityProtocolType.Ssl3
却使它感到困惑。
我猜想解决此问题的方法是使用代码,就像我以前使用的3072
,但现在使用Ssl3
,但是找不到任何可以尝试的代码。
所以首先我要问是否有人可以为我提供这些代码的链接,其次是问题是否还有其他需要我指出的地方。
编辑:从here中发现SSL 3.0的代码为48
,并尝试了与Tls12
相同的技巧,但是没有用。现在该怎么办?