Wcf サービス ライブラリを作成していて、アンマネージ com dll をロードしたいと考えています。com dll スレッド モデルは設定されていないため、メインの STAスレッド モデルでのみ実行されるシングル スレッドのレガシー コンポーネントです。
wcf サービスでは、アパートを STAのように設定しました
com コンポーネントのインスタンスを作成しようとすると、例外が発生します。
System.Runtime.InteropServices.SEHException : External component has thrown an exception.
com dll をデバッグすると、エラーがスローされましたRPC_E_WRONG_THREAD
。
スレッド モデルを に設定することで問題を解決できますFree Threaded Marshaller
。しかし、com dll の現在のスレッド モデルを変更することはできません。
どうすれば wcf サービスから com dll にアクセスできますか?
.Net フレームワーク 4.0、Windows 7 x64