温州网站优化搜索,360街景地图最新版,wordpress文章自动更新方法,php和django做网站哪个好昨天#xff0c;突然间#xff0c;我的一个 Delphi 程序无法连接到互联网上的各种WMS服务器。我收到以下错误消息#xff1a;
使用 SSL 连接时出错。错误 1409442E#xff1a;SSL 例程#xff1a;ssl3_read_bytes#xff1a;tlsv1 警报协议版本
由于我使用的是最新版本…昨天突然间我的一个 Delphi 程序无法连接到互联网上的各种WMS服务器。我收到以下错误消息
使用 SSL 连接时出错。错误 1409442ESSL 例程ssl3_read_bytestlsv1 警报协议版本
由于我使用的是最新版本的Indy根据Delphi Praxis 上的此线程这种情况不应该发生。事实证明不知何故一个非常旧版本的 openssl DLL libeay32.dll和ssleay32.dll已被放置在我计算机上的 sarch 路径中版本 1.0.0e。获取托管在GitHub或indy.fulgan.com上的最新版本并将它们放入我的程序Z-Gantt时间管理进度计划甘特图软件的可执行目录中解决了这个问题。
好吧那么我是怎么发现情况是这样的除了谷歌搜索猜测之外
IdSSLOpenSSL 单元中有一个函数 OpenSSLVersion它返回 OpenSSL dll 的版本。在撰写本文时该名称应以“OpenSSL 1.0.2u”开头。
还可以使用两个 DLL 的句柄调用 GetModuleName分别通过函数 GetSSLLibHandle 和 GetCryptLibHandle 获得为您提供实际加载的 DLL 的完整路径。当然要使其工作DLL 必须已加载但调用 OpenSSLVersion 可以为您完成此操作。 OpenSslVer : IdSSLOpenSSL.OpenSSLVersion;
OpenSslLibName : GetModuleName(GetSSLLibHandle);
OpenSslCryptLibName : GetModuleName(GetCryptLibHandle); 我希望这对其他人有用因为我花了一段时间才弄清楚如何获取这些信息。 Remy Lebeau非常感谢您已经投入并仍在投入这个库的所有工作。