Ошибка: Запрошенный поставщик услуг не может быть загружен или инициализирован. - розетка (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 ответ
Оказывается, что сценарий запускался удаленно от другого пользователя, нежели когда он запускался локально. Я не совсем уверен, что насчет изменения среды, вызвавшей проблему, но как только мы настроили удаленный экземпляр для запуска под тем же пользователем, что и локальный, все работало нормально.