我们在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有关,因为应用程序在重新安装服务器之前工作正常。
答案 0 :(得分:0)
问题得到解决。也许这会对某人有所帮助。
因此,我运行了Process Monitor(sysinternals)并在我的应用程序运行时捕获了w3wp.exe中的所有事件。 我注意到w3wp.exe进程在尝试从Windows注册表中读取内容时停止:HKEY_CLASSES_ROOT-> CLSID-> {xxx-xxx ...}。 打开regedit - 好吧,这个节点包含一些关于MapX的信息。
在此节点的“READ”预先添加到网络服务帐户(w3wp正在运行)之后,应用程序开始正常工作。