正如標題所說,我想從一個ASP.NET MVC應用程序這樣的實例化一個COM對象:無法從ASP.NET MVC應用程序實例化COM對象
dynamic obj = Activator.CreateInstance(Type.GetTypeFromProgID(progID));
,但它引發以下收到COMException :
Retrieving the COM class factory for component with CLSID {16542E4F-4594-4B97-922D-BE9C478F93BB} failed due to the following error: 800aea5f Exception from HRESULT: 0x800AEA5F.
相同的代碼從WinForms應用程序可與下面的生成配置:Platform: x86
和Platform target: x86
。
我將構建配置設置爲與Winforms應用程序相同的mvc應用程序和使用COM對象的程序集。
我正在使用Windows 7,IIS 7.5,ASP.NET v4.0應用程序池並啓用32位應用程序True並且該網站在擁有管理員權限的用戶下運行。
你有什麼建議可以幫助解決這個問題?
即使你已經啓用了32位模式,這並不意味着你的.NET代碼在32位上運行。所以我想這是你從64位.NET代碼調用32位COM? – YvesR
@YvesR正如我在問題中所說的,我爲mvc應用程序和使用COM對象的程序集設置了構建配置:「Platform:x86」和「Platform target:x86」,因此它應該運行32-位代碼。 –
您是否正確設置了DCOM權限,以便您可以從網站啓動com +對象?我的意思是您在網站上運行的帳戶的默認啓動設置(dcomcnfg.exe)。當我在win2k8機器上設置IIS時,我總是需要調整設置。 – YvesR