访问ActiveX组件时ASP.NET应用程序挂起

时间:2009-07-13 13:13:38

标签: .net asp.net com interop

我们在ASP.NET应用程序中使用MapInfo MapX映射引擎。重新安装服务器(Windows Server 2003 SP2)后,我们遇到了一个奇怪的问题 - 访问ActiveX实例时Web应用程序挂起。

例如:

 
MapXLib.Map _mapXMap =
    (MapXLib.Map)HttpContext.Current.Server.CreateObject("MapX.Map.5");
_mapXMap.MapUnit = MapXLib.MapUnitConstants.miUnitKilometer; // application hangs here

然而,代码


MapXLib.Map _mapXMap =
    (MapXLib.Map)Activator.CreateInstance(Type.GetTypeFromProgID("MapX.Map.5"));
_mapXMap.MapUnit = MapXLib.MapUnitConstants.miUnitKilometer;

在标准的Windows应用程序中正常工作。

我认为问题与COM和ASP.NET有关,因为应用程序在重新安装服务器之前工作正常。

1 个答案:

答案 0 :(得分:0)

问题得到解决。也许这会对某人有所帮助。

因此,我运行了Process Monitor(sysinternals)并在我的应用程序运行时捕获了w3wp.exe中的所有事件。 我注意到w3wp.exe进程在尝试从Windows注册表中读取内容时停止:HKEY_CLASSES_ROOT-> CLSID-> {xxx-xxx ...}。 打开regedit - 好吧,这个节点包含一些关于MapX的信息。

在此节点的“READ”预先添加到网络服务帐户(w3wp正在运行)之后,应用程序开始正常工作。