正如标题所说,我想从ASP.NET MVC应用程序中实例化一个COM对象,如下所示:
dynamic obj = Activator.CreateInstance(Type.GetTypeFromProgID(progID));
但它抛出以下ComException:
使用CLSID检索组件的COM类工厂 {16542E4F-4594-4B97-922D-BE9C478F93BB}由于以下原因而失败 错误:800aea5f来自HRESULT的异常:0x800AEA5F。
相同的代码适用于具有以下构建配置的Winforms应用:Platform: x86
和Platform target: x86
。
我为mvc应用程序和使用COM对象的程序集设置构建配置与Winforms应用程序相同。
我正在使用Windows 7,IIS 7.5,启用32位应用程序的ASP.NET v4.0应用程序池True,该网站在具有管理员权限的用户下运行。
您有什么建议来帮助解决这个问题?
答案 0 :(得分:0)
@ david.s我不知道如何添加截图作为评论,所以我将其设置为答案。 由于您已经设置了所有32位内容并且无法调用DLL,因此可能是权限问题。
调用dcomcnfg.exe并检查设置(抱歉,只有德语服务器,但应该可以工作):
您必须在更改设置后重置IIS。
答案 1 :(得分:0)
将应用程序池的默认用户设置为具有管理员权限的用户