2009-07-13 1 views
0

Wir verwenden MapInfo MapX-Mapping-Engine in unserer ASP.NET-Anwendung. Nach der Neuinstallation des Servers (Windows Server 2003 SP2) ist ein seltsames Problem aufgetreten - die Webanwendung hängt beim Zugriff auf die ActiveX-Instanz.ASP.NET App hängt beim Zugriff auf ActiveX-Komponente

Zum Beispiel:


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

jedoch der Code


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

in einer Standard-Windows-Anwendung funktioniert gut.

Ich denke, das Problem hängt mit COM und ASP.NET zusammen, weil die Anwendung vor der Neuinstallation des Servers einwandfrei funktionierte.

Antwort

0

Das Problem ist gelöst. Vielleicht wird das für jemanden hilfreich sein.

Also habe ich Process Monitor (sysinternals) ausgeführt und erfasst alle Ereignisse von w3wp.exe, wenn meine Anwendung ausgeführt wird. Ich bemerkte, dass der w3wp.exe-Prozess beim Versuch, etwas aus der Windows-Registrierung zu lesen beendet: HKEY_CLASSES_ROOT-> CLSID -> {xxx-xxx ...}. Geöffnete Regedit - nun, dieser Knoten enthält einige Informationen über MapX.

Nachdem die 'READ' -Voraussetzung für diesen Knoten zum Netzwerkdienstkonto hinzugefügt wurde (w3wp läuft auf dieser Anwendung), funktionierte die Anwendung ordnungsgemäß.