我正在编写一个 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