Rails 3アプリでwin32olegemを使用しようとしていますが、スレッドに関連していると思われる問題が発生しています。基本的に、ActiveDirectoryストアからユーザー固有のデータを取得するために使用する次のようなコードがあります。
root = WIN32OLE.connect("LDAP://RootDSE")
しかし、これはRailsリクエストの一部として実行されると散発的なエラーを引き起こします(Railsアプリが再起動された後の最初のリクエストは常に機能すると思います)。スタンドアロンのRubyアプリからこのコードを実行するたびに正常に動作します。これは、OLE / COMオブジェクトが最初に初期化されたスレッドでのみ使用できるという事実に起因することを少しグーグルで理解しています(STAで実行されていることと関係がありますか?)。それから、これはRails 3が別々のスレッドで異なるリクエストを実行していることと関係があると思いますか?(私のRailsアプリはWindowsボックスで実行されています。)
WIN32OLE.connect
呼び出しによってスローされるエラーはです'connect': failed to parse display name of moniker
。
これを修正する方法はありますか?