使用 Delphi 2007/Apache 的 Indy“无法加载 SSL 库”

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/952676/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-13 17:41:41  来源:igfitidea点击:

Indy "Could not load SSL Library" with Delphi 2007/Apache

delphiapachesslindy

提问by M Schenkel

I know this question has been asked a number of times. I seem to have a bit of a different problem. In my situation after the exception is thrown initially it works fine (and no; I did not turn off exceptions). So what I have done is on the exception I simply repost:

我知道这个问题已经被问过很多次了。我似乎有一些不同的问题。在我最初抛出异常后的情况下,它工作正常(不;我没有关闭异常)。所以我所做的是在我简单地重新发布的例外情况下:

IdHTTP1.Post(.......

IdHTTP1.Post(......

I have put the libeay32.dll and ssleay32.dll both in the Apache bin directory and the directory where my ISAPI dll resides.

我已将 libeay32.dll 和 ssleay32.dll 都放在 Apache bin 目录和我的 ISAPI dll 所在的目录中。

Anyone have any suggestions?

有人有什么建议吗?

采纳答案by Alex

For Indy you need a special build of OpenSSL libraries. The default OpenSSL libraries are not suitable for using with Indy.

对于 Indy,您需要一个特殊的 OpenSSL 库构建。默认的 OpenSSL 库不适合与 Indy 一起使用。

See also. May be you need to try different versions, until you'll find a suitable one.

另见。可能您需要尝试不同的版本,直到找到合适的版本。

回答by Remy Lebeau

That error means that the TIdSSLIOHandlerSocketOpenSSL.PassThroughproperty is being set to False(which would happen when posting to an HTTPS URL) before TIdSSLIOHandlerSocketOpenSSL.Init()has been called to intialize the SSL context first.

该错误意味着该TIdSSLIOHandlerSocketOpenSSL.PassThrough属性被设置为False(在发布到 HTTPS URL 时会发生)之前TIdSSLIOHandlerSocketOpenSSL.Init()已被调用以首先初始化 SSL 上下文。

Sounds like a bug. Next time you get the error, can you grab the stack trace?

听起来像一个错误。下次你得到错误时,你能抓住堆栈跟踪吗?