调用 CompleteSale 方法时出现 "the underlying connection was closed an unexpected error occurred on a send" 错误

Get "the underlying connection was closed an unexpected error occurred on a send" error when calling CompleteSale method

自 2 周 (02/10) 以来,我在通过 eBay_Service .NET SDK (v967) 调用 API 的方法 CompleteSale 时遇到问题。
当 ERP 尝试发送有关某个订单的一些更新信息时,它会收到此异常:

the underlying connection was closed an unexpected error occurred on a send

所以我还没有收到 API 的回复。
奇怪的事情不止一件:

ERP 正在开发中 (OpenGL) ,所以我无法通过将 "KeepAlive" 设置为 "false" 来修复,显式设置证书 (Tsl1.1 | Tsl1 .2) 或者在 .net 端进行其他干预。 我错了,可以从 SDK 的源代码中完成。

我检查了 api 服务器上的安全协议,发现不再支持 "SSL3" 而 .NET 2.0 中 ServicePointManager.SecurityProtocol 的默认值为SSL3。
我已经通过在 SDK 源代码的 "eBayXmlAPIInterfaceService" class 添加此修补程序解决了这个问题:

//768  = Tsl1.1,  3070 = Tsl1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072 |
(SecurityProtocolType)768;

HttpWebRequest http = (HttpWebRequest) WebRequest.Create(this.Url);
http.Method = "POST";
http.ContentType = "text/xml";
http.ContentLength = data.Length;
http.KeepAlive = false;

可能是 Microsoft 发布了一个修补程序来解决这个问题,但服务器自 2015 年以来就没有更新过。
此外,我已经在我们用来执行 get/post 请求的程序中复制了 ABL 应用程序中的 .net 代码:

DEF VAR w-tsl10 AS System.Net.SecurityProtocolType
w-tsl10 = CAST(System.Enum:ToObject(PROGRESS.Util.TypeHelper:GetType("System.Net.SecurityProtocolType":U), 192), System.Net.SecurityProtocolType).
ystem.Net.ServicePointManager:SecurityProtocol = w-tsl10.

我在与 betfair api 合作时遇到了这个问题。经过一些研究,我发现了这个

System.Net.ServicePointManager.Expect100Continue = true;
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;