windows - 错误 : The requested service provider could not be loaded or initialized. - 套接字 (2)

标签 windows ruby networking nrpe

我正在运行一个使用 Ruby/MySQL 和 net/ftp 的 ruby​​ 脚本。该脚本在 Windows Vista 机器上运行,并试图创建到同一远程 Solaris 服务器的数据库和 ftp 连接。

这是代码的要点:

require 'mysql'
require 'net/ftp'

dbh = Mysql.real_connect(db["host"], db["user"], db["pass"], db["name"])
ftp = Net::FTP.new(ftp["host"])

现在,如果我从它所在的 Vista 框中运行脚本,一切都会正常运行。但是,该脚本是通过 NRPE 从另一台服务器调用的,这就是错误发生的时候。

如果我将 db["host"]/ftp["host"] 设置为等于远程服务器的完全限定域名,这是我收到的错误:

getaddrinfo: no address associated with hostname.

收到该错误后,我尝试从脚本中 ping 服务器,当尝试 ping 主机名时果然失败了,但是,当我 ping IP 地址时它成功了。

但是如果我将 db["host"]/ftp["host"] 设置为远程服务器的 IP 地址,我会得到这个错误:

The requested service provider could not be loaded or initialized. - socket(2)

我很难找到任何关于如何调试它的信息,所以如果有人有任何想法,他们将不胜感激。

提前致谢。

最佳答案

原来脚本是从不同的用户远程运行的,而不是在本地运行的。我不确定是什么环境变化导致了这个问题,但是一旦我们将远程实例设置为以与本地相同的用户身份运行,一切都运行良好。

关于windows - 错误 : The requested service provider could not be loaded or initialized. - 套接字 (2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1544790/

相关文章:

windows - 检测 WinHelp 是否安装在 Vista 或更新的 Windows 上

windows - 如何制作虚幻引擎 4 全屏(Windows 包)

java - 如何在android中获取IP地址的主机名?

java - 就性能而言, `java.net` 和 `java.nio` 的替代方案是什么?

windows - 如何在纹理上的 3d 空间中显示 windows/X 窗口系统窗口?

windows - Windows 上的 Node.js 和文件系统 - EBUSY 错误

ruby - 使用 Octokit.rb 输出 repos URL

ruby - 附加具有唯一值的收集数组

ruby - 如何在单例类上定义类变量

java - 为什么两个 Java 进程可以绑定(bind)到 macOS 中的同一个套接字?