使用不同TLS版本的.NET dll



我们有一个Microsoft Access应用程序,可以整合我们在易趣上的许多活动。我通过Access引用的几个com dll来完成这项工作。应用程序的一部分将我们库存中的物品发布到易趣上。这种方法已经使用了至少8年。最近,eBay将其服务器更改为需要TLS 1.2;请求被中止:无法创建SSL/TLS安全通道";消息查看了这一点,微软表示将dll项目升级到Framework 4.7或更高版本将修复。我升级了解决方案框架并重新编译。

当我从VS中内置的win-forms测试应用程序调用时,升级后的dll可与易趣配合使用。当我从Access应用程序中调用时,我仍然会收到TLS错误。当我在Fiddler中查看与eBay的通信时,当从.NET win表单测试应用程序调用时,来自dll的调用使用TLS 1.2。当从Access调用dll时,它仍在使用TLS 1.0。Access应用程序和.NET测试应用程序都引用了相同的dll文件。

问题:调用dll的应用程序会影响正在使用的TLS版本吗?关于是什么原因导致同一dll使用不同的TLS版本,有什么想法吗?

哼,我不认为VBA/Office作为主机程序会更改TLS设置。但你可以考虑尝试这个注册表编辑:

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001
[HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoft.NETFrameworkv4.0.30319]
"SystemDefaultTlsVersions" = dword:00000001
"SchUseStrongCrypto" = dword:00000001

我相信你也必须重新启动你的电脑,以上才能生效。

最新更新