Я пытаюсь использовать гем win32ole в приложении на Rails 3 и сталкиваюсь с некоторыми проблемами, которые, я думаю, связаны с потоками.По сути, у меня есть такой код, который я использую для получения пользовательских данных из нашего хранилища Active Directory:
root = WIN32OLE.connect("LDAP://RootDSE")
Но это дает спорадическую ошибку при запуске как часть запроса Rails (я думаю, что первыйзапрос после перезапуска приложения Rails всегда работает).Он прекрасно работает каждый раз , когда я запускаю этот код из автономного приложения Ruby.Я немного понял из Googling, что это связано с тем, что объект OLE / COM можно использовать только в том потоке, в котором он был инициализирован (что-то связанное с тем, что он работает в STA?).Исходя из этого, я предполагаю, что это как-то связано с Rails 3, выполняющим разные запросы в разных потоках?(Приложение My Rails работает на Windows.)
Ошибка, выдаваемая вызовом WIN32OLE.connect
, 'connect': failed to parse display name of moniker
.
Есть идеи, как это исправить?