我正在从ASP.NET应用程序调用COM对象。
以下是拨打电话的代码:
var comType = Type.GetTypeFromProgID(config.ProgramId);
var com = Activator.CreateInstance(comType);
var regionPropertyValue = ReflectionHelpers.GetProperty(com, "Region");
var output = comType.InvokeMember("Execute",
BindingFlags.InvokeMethod,
null, com, new object[] { data });
此调用有效几次,然后最终因以下错误而挂起:
Creating an instance of the COM component with CLSID {xxx} from the IClassFactory failed due to the following error: 8004e024.
我不确定从哪里开始排除故障。我已经搜索了错误代码但是得到了一堆混合结果。
.NET代码看起来是否正确?我是否需要手动关闭或处理拨打电话的任何内容?
更新
添加以下行以释放对象会停止呼叫超时。以前的调用没有释放导致其他挂起调用的对象。
Marshal.FinalReleaseComObject(com);