-1
我正在編寫一個Wcf服務庫並希望加載一個非託管的com DLL。在COM DLL線程模型不設置,只有運行在主STA threading model無法創建從.net wcf服務寫入非託管代碼的com組件對象
在WCF服務,所以它是一個單線程的舊式組件,我已經設置了公寓爲STA現在like
,當我嘗試創建COM組件的情況下,當我調試COM DLL和它拋出一個錯誤RPC_E_WRONG_THREAD
給出了一個例外
System.Runtime.InteropServices.SEHException : External component has thrown an exception.
。
我可以通過將線程模型設置爲Free Threaded Marshaller
來解決此問題。但我不能改變當前的COM DLL線程模型。
那麼請幫助我,我如何從wcf服務訪問com dll?
框架4.0,Windows 7的64位
INFACT我可以從一個簡單的C#控制檯應用程序通過設置公寓爲STA訪問COM DLL的,因爲我是從主線程訪問它的COM的線程模型匹配dll文件。 – Amjad 2013-03-01 07:02:19
但在wcf服務我試圖通過工作線程(這是STA)訪問COM,所以它沒有被訪問。那麼有什麼辦法從WCF服務的主線程訪問COM? – Amjad 2013-03-01 07:04:52