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

Я запускаю скрипт 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 Ответ

0 голосов
/ 29 октября 2009

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

...