从ASP.NET创建后期绑定COM对象时出现IClassFactory错误

时间:2018-04-27 05:32:43

标签: c# asp.net com iis-10

我正在Windows Server 2016上设置ASP.NET网站。该网站还使用以下C#代码创建COM对象的实例:

    Type type = Type.GetTypeFromProgID(ProgID, Server, true);
    dynamic object = Activator.CreateInstance(type);

但是,该程序在行Activator.CreateInstance上抛出异常,并出现以下错误:

Creating an instance of the COM component with CLSID {E2FB185E-F4D8-482A-B27B-A08BB4F9EAE9} from the IClassFactory failed due to the following error: 800a0005 Exception from HRESULT: 0x800A0005 (CTL_E_ILLEGALFUNCTIONCALL).

在Server 2012计算机上安装时,我没有收到此错误。此外,如果我在应用程序池使用的同一用户帐户下将其作为Window应用程序运行,我可以在2016服务器上无错误地运行此代码。

有没有人有任何建议?感谢。

1 个答案:

答案 0 :(得分:0)

好的,问题出在用VB6编写的COM对象中。潜在的错误是"无效的过程调用或参数"。发生错误的原因是应用程序需要缺少系统环境变量。变量是在用户级别定义的,但它们不会为应用程序池使用的用户加载。

一旦我为系统添加了缺少的环境变量,错误就消失了。