2013-09-06 38 views
5

Próbuję debugować dll VB 6, który jest używany na stronie klasycznej ASP. Mam inny program dll działa, ale jeden w szczególności powoduje mi kilka prawdziwych bólów głowy. Ten odwołuje się do COMSVCSLib COM i podczas debugowania jest pusty.Dlaczego mój ObjectContext jest pusty podczas debugowania pliku dll vb 6 dla klasycznej strony asp IIS6?

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

Kiedy skompilowany i zadzwonił ze strony asp, wszystko jest w porządku,

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

mam "wszyscy są dodawane do wszystkich aspektów debugowania DCOM VB ASP.

Używam systemu Windows Server 2003 w wersji 32-bitowej na komputerze 64-bitowym, używając IIS 6.

Jak wspomniałem inne DLL debugowania w porządku, to właśnie ten aspekt ten jeden, który nie działa. Jakieś sugestie?

+0

Używam systemu Windows 2008 na maszynie 64-bitowej, używając usług IIS 7 i mając podobny problem. –

Odpowiedz

2

Obiekt COMSVCLib.ObjectContext reprezentuje kontekst obiektu na hoście DCOM (dllhost.exe). Ten kontekst zapewnia dostęp do właściwości opisujących konfigurację aplikacji DCOM w usługach składowych.

Po uruchomieniu projektu .DLL w trybie debugowania w VB6 biblioteka DLL będzie obsługiwana przez proces VB6.exe. Ten proces nie ma żadnej konfiguracji w rodzaju aplikacji DCOM, więc proces VB6.exe nie zawiera żadnych informacji o kontekście obiektu.

Dlatego GetObjectContext nie zwróci nic.

+0

Czy mogę coś z tym zrobić? – spuppett

+0

Niezupełnie. Możesz sprawdzić, czy kontekst jest zerowy i odpowiednio zareagować. Możesz użyć innego debuggera do przyłączenia się do procesu dllhost, ale wtedy przegapisz edycję i kontynuację – GTG