2013-09-06 1 views
5

Ich versuche, eine VB 6-DLL zu debuggen, die in einer klassischen ASP-Seite verwendet wird. Ich habe andere dll arbeiten, aber eine besondere verursacht mir einige echte Kopfschmerzen. Dieser verweist auf die COMSVCSLib-COM und ist beim Debugging leer.Warum ist mein ObjectContext beim Debuggen von Vb 6 dll für eine asp classic Seite IIS6 leer?

... 
    Dim objContext as COMSVCLib.ObjectContext 
    Set objContext = GetObjectContext 
    ... 

Wenn von der ASP-Seite zusammengestellt und genannt, ist alles in Ordnung,

<% 
     dim obj 
     set obj = Server.CreateObject("page_builder.glue") 
     obj.Login 
     set obj = nothing 
    %> 

Ich habe 'jeder', um alle Aspekte des VB ASP Debuggen DCOM hinzugefügt.

ich Windows Server 2003 auf einem 64-Bit-Maschine in 32-Bit-leite, IIS 6.

Verwendung Wie ich andere DLLs debuggen fein erwähnt, es ist nur dieser Aspekt dieser eine, die nicht funktioniert. Irgendwelche Vorschläge?

+0

Ich verwende Windows 2008 auf einem 64-Bit-Computer mit IIS 7 und einem ähnlichen Problem. –

Antwort

2

Das Objekt COMSVCLib.ObjectContext repräsentiert den Objektkontext im DCOM-Host (dllhost.exe). In diesem Kontext können Sie auf Eigenschaften zugreifen, die die Konfiguration Ihrer DCOM-Anwendung in Komponentendiensten beschreiben.

Wenn Sie Ihr DLL-Projekt im Debugmodus in VB6 jedoch ausführen, wird die DLL von dem Prozess VB6.exe gehostet. Dieser Prozess hat keine Konfiguration der Art, die Ihre DCOM-Anwendung aufweist, so dass der Prozess VB6.exe keine Objektkontextinformationen enthält.

Daher gibt der GetObjectContext nichts zurück.

+0

Kann ich irgendetwas dagegen tun? – spuppett

+0

Nicht wirklich. Sie können überprüfen, ob der Kontext nichts ist und entsprechend reagieren. Sie können einen anderen Debugger zum Anhängen an den Dllhost-Prozess verwenden, aber dann verpassen Sie die Bearbeitung und Fortfahren – GTG