COM+ Visual Basic-Debugunterstützung im Gegensatz zu MTS
COM+ entfernt oder reduziert mehrere Einschränkungen des Debuggens mit Microsoft Visual Basic 6.0 und MTS. In der folgenden Liste sind die Änderungen zusammengefasst, die Sie mit COM+ erwarten können:
Debuggen mehrerer Komponenten: In COM+ können Sie Szenarien debuggen, in denen ein Client, der in einer instance der IDE ausgeführt wird, eine beliebige Anzahl von DLLs aufruft, die in einer anderen als Projektgruppe ausgeführt werden. Die Objekte in den gruppierten DLL-Projekten können sich gegenseitig beliebig aufrufen, wobei der Kontext nach Bedarf fließt. Dies funktioniert natürlich auch, wenn sich die DLLs und der Client in derselben Projektgruppe in derselben instance der IDE befinden.
Debuggenseinschränkungen für Class_Initialize- und Class_Terminate ereignisse: Mit COM+ können Sie Code in die Class_Initialize und Class_Terminate Ereignisse einer COM+-Anwendungskomponente einfügen, auch wenn dieser Code versucht, auf das Objekt oder das zugehörige Kontextobjekt zuzugreifen. Sie können dort Haltepunkte festlegen und Uhren verwenden. Sie können auch Haltepunkte im Class_Terminate-Ereignis festlegen.
Obwohl sie nicht mehr als Problemumgehung benötigt wird, können Sie dennoch die IObjectControl-Schnittstelle implementieren und die Methoden Activate und Deactivate verwenden, wenn Sie code beim Starten und Herunterfahren Ihrer Komponente ausführen müssen. Sie können jetzt auch Haltepunkte in Code für die Methoden Deaktivieren oder CanBePooled einfügen.
Beobachten von MTS-Objekten: Mit COM+ können Sie Überwachungen für von COM+ zurückgegebene Objektvariablen hinzufügen, einschließlich Rückgabewerten der Methoden SafeRef, GetObjectContext und IObjectContext::CreateInstance .
Höhere Stabilität, wenn Komponenten ausfallen: In COM+ wird Visual Basic nicht mehr immer durch einen Komponentenfehler beendet (das im gleichen Prozess wie die debuggierte Komponente ausgeführt wird). Beispielsweise können Sie durch die Unterstützung von JiT-Reaktivierungsfehlern (Just-in-Time) jetzt den Objektkontext beim Debuggen betrachten.
Debugger kann von COM+ freigegebene Objekte reaktivieren– Wie bei MTS kann Visual Basic 6.0 COM+-Objekte reaktivieren, während Sie einen einzelnen Schritt über einen Client debuggen. Aufgrund der Art und Weise, wie Visual Basic 6.0 Informationen zu Objekten ermittelt, ist dies ein erwartetes Verhalten. Beachten Sie z. B. folgenden Code:
Dim obj As Object Set obj = CreateObject("MyApp.MyClass") obj.Test 'Call the user-defined subroutine named Test. Set obj = Nothing
If the obj. Die Testmethode ruft IObjectContext::SetComplete auf, COM+ gibt obj sofort aus dem Arbeitsspeicher frei, obj wurde jedoch noch nicht auf Nothing festgelegt. Wenn obj. Test gibt zurück, der Visual Basic-Debugger ruft QueryInterface auf obj für die IProvideClassInfo-Schnittstelle auf. Der kontextbezogene Wrapper, der obj zugeordnet ist, erstellt eine neue instance von MyApp.MyClass, um den QueryInterface-Aufruf zu bedienen. Daher wird dieses nicht initialisierte Objekt im Debugger nach obj angezeigt. Test wurde zurückgegeben. Dieses Objekt wird nur im Debugger angezeigt und von der nachfolgenden Anweisung entfernt, obj auf Nothing festzulegen.
Zugehörige Themen