【问题标题】:284 could not be located in the dynamic link library SSLEAY32.dll284 无法在动态链接库 SSLEAY32.dll 中找到
【发布时间】:2010-09-27 12:33:20
【问题描述】:

Postgres 8.3 安装在 Windows 2008 服务器上。 安装了 Ruby 1.8-6。 宝石安装 ruby​​-postgres。

当尝试一个简单的连接时,我得到了

ruby.exe - 未找到序数

无法在动态链接库 SSLEAY32.dll 中找到序号 284。

好的

postgres 8.3 附带的 ssleay32 和 ruby​​ 1.8-6 之间似乎存在一些冲突

我知道我可以使用 gem postgres-pr,但我更喜欢使用 ruby​​-postgres,因为这是我在所有其他设置中使用的,即使它们中的大多数是在 linux 下而不是 windows 下运行。

所以问题是,有没有人解决这个问题以及如何解决?

【问题讨论】:

    标签: ruby postgresql


    【解决方案1】:

    就为 OpenSSL 使用最新的二进制文件而言,任何更好的解决方案是在 ruby​​\bin 文件夹和 posgresql\lib 文件夹中重命名 libeay32.dll 和 ssleay32.dll 并从http://www.slproweb.com/products/Win32OpenSSL.html,在撰写本文时是“Win32 OpenSSL v0.9.8j Light”,将目录放在路径中,然后走开,它对我有用!使用最新且最安全的 OpenSSL 库,您会有一种温暖的感觉。

    【讨论】:

    • 必须尝试,但这似乎是迄今为止最好的方法。
    • 通过直接从 OpenSSL 站点获取最新的 DLL,以这种方式解决了我的 Windows 7 问题。
    【解决方案2】:

    迈尔斯·乔治

    这可能是最好的方法 开始,但最终你会想要 改为使用 ruby​​-postgres。这 让那个司机工作的诀窍 是将2个dll文件复制到您的 c:\ruby\bin 文件夹中的 C:\program files\posgresql\lib 文件夹。 我认为这两个文件是 libeay32.dll 和 ssleay32.dll

    我认为另一种方法是使用信任而不是来自本地主机的 md5。因为我想这种对 ssleay 的需求应该与身份验证有关。

    【讨论】:

      【解决方案3】:

      在windows下不做太多事情就得到一个最小的东西。

      使用:gem install ruby​​-postgres

      然后安装 pgadmin 的 windows 版本并从那里使用所有需要的文件 (cp 从 pgadmin\bin 到 ruby​​\bin 或者通过设置 PATH 到 pgadmin\bin)

      【讨论】:

        【解决方案4】:

        我从未接触过 ruby​​ 或 postgres,但您使用的是旧版本的 openssl,而不是编译时使用的旧版本。最新版本是 openssl-0.9.8j,所以要构建它:

        下载并解压,然后使用visual c++ 2008 express + active perl:

        C:\openssl-0.9.8j>perl 配置VC-WIN32

        C:\openssl-0.9.8j>ms\do_masm

        C:\openssl-0.9.8j>nmake -f ms\ntdll.mak

        【讨论】:

          【解决方案5】:

          只需复制OpenSSL 的最新二进制文件

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-07-24
            • 2012-09-09
            • 1970-01-01
            • 1970-01-01
            • 2013-08-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多