Ошибка: Запрошенный поставщик услуг не может быть загружен или инициализирован. - розетка (2)

Я запускаю скрипт ruby, который использует Ruby/MySQL и net/ftp. Сценарий выполняется на компьютере под управлением Windows Vista и пытается создать базу данных и FTP-соединение с тем же удаленным сервером Solaris.

Вот суть кода:

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.

После получения этой ошибки я попытался пропинговать сервер из сценария и, конечно же, он потерпел неудачу при попытке пропинговать имя хоста, однако это сработало, когда я пропинговал IP-адрес.

Но затем, если я установил в db["host"]/ftp["host"] IP-адрес удаленного сервера, я получу эту ошибку:

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

Мне трудно найти какую-либо информацию о том, как отладить это, поэтому, если у кого-то есть какие-либо идеи, они будут очень благодарны.

Заранее спасибо.

1 ответ

Решение

Оказывается, что сценарий запускался удаленно от другого пользователя, нежели когда он запускался локально. Я не совсем уверен, что насчет изменения среды, вызвавшей проблему, но как только мы настроили удаленный экземпляр для запуска под тем же пользователем, что и локальный, все работало нормально.

Другие вопросы по тегам