[VB] COM+ debuggen op XP

Pagina: 1
Acties:

  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
Ik ben al even op zoek op Internet en op de GoT search, maar zonder oplossing (heb wel anderen gevonden met hetzelfde probleem (zoals hier) maar zonder oplossing). Daarom kom ik de vraag hier stellen.

We ontwikkelen een aantal jaren al een applicatie die draait op een NT4 server onder MTS. De componenten (DLL's) die we maken werken zonder problemen ook op Win2k en WinXP (COM+). Het probleem is dat het debuggen ervan niet lukt op een XP post.

Kort samengevat gaat het debuggen als volgt:
  1. Kopieer de DLL's naar de XP post.
  2. Registreer de DLL's met regsvr32.
  3. Voeg de DLL's toe in Component Services.
  4. Open het project met VB6.EXE.
  5. Run with full-compile (Ctrl+F5).
Vanaf dan zou het mogelijk moeten zijn om de DLL's te debuggen door via een client-toepassing die DLL's aan te spreken. De bedoeling is dat de calls naar de VB-instantie gestuurd worden zodat de debugging daar kan plaatsvinden. Dit werkt reeds jaren perfect op NT4 workstation, maar op XP krijgen we na de laatste stap (run with full-compile) een foutmelding "&H80004005 Unspecified error".

Onze gok is dat het met een of andere security/policy item te maken heeft in XP. We hebben reeds een pak mogelijke oplossing uitgeprobeerd, maar tot nog toe heeft niets gewerkt (o.m. dit).

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305


Verwijderd

Zou het iets te maken kunnen hebben met het feit dat in XPSP2 users niet meer mogen debuggen? (moet je dan in de groep Debugger Users hangen)...

  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
Interessante tip, maar momenteel gaat het nog over een XP SP1 post...

Ook even melden dat het gaat om VB6 SP3 (en niet de recentste SP6).

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305


  • Ashtaroth
  • Registratie: December 2003
  • Laatst online: 16-02 09:59
Indien je een component aan een com+ applicatie toevoegd, kies dan de optie "Import component(s) that are already registered". Je zult dan ook zien dat je geen interfaces krijgt te zien.

Op deze manier kun je "gewoon"debuggen in VB en COM+.

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Rechtstreeks Copy en Paste vanuit mijn KB :)
Als je een ActiveX component via een ASP webpage wilt debuggen in je VB IDE moet eerst de stappen hieronder beschreven doornemen:
http://support.microsoft.com/kb/q192152/
http://support.microsoft.com/kb/q259725/

Indien je hierna nog steeds ASP0178 errors krijgt doe dan het volgende:
Plaats de volgende lokale users onder de Administrators groep:
- IWAM_<machine_usr>
- IUSR_<machine_usr>

Herstart je systeem en daarna zal het moeten werken. Mocht het nog niet werken kijk dan in je Event log of er foutmeldingen verschijnen.

It’s nice to be important but it’s more important to be nice


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 00:59

alienfruit

the alien you never expected

Onder Delphi gebruikte ik altijd een plugin zodat je gemakkelijk je COM+ service kon testen, i.e. automatische shutdown voor het compileren. Simpel managen van de IIS, debughost takeover etc. Erg handig, er moet toch ook wel zoiets zijn voor VB?

  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
JonkieXL schreef op dinsdag 26 juli 2005 @ 13:46:
Rechtstreeks Copy en Paste vanuit mijn KB :)
Bedankt voor de hulp. Die KB-artikels van MS hadden we zelf ook gevonden (de tweede staat ook in de startpost btw). Het volgen van deze procedures heeft voorlopig geen resultaat opgeleverd.

Dat van de accounts (IUSR en IWAM) is bij ons niet van toepassingen om volgende redenen:
  • De fout treedt op vóór we enig object instantiëren. Wanneer we Ctrl+F5 (compile&run) drukken, dan krijgen we de fout. We zijn dan nog niet in IIS/IE geweest.
  • Onze web-applicatie draait op een Intranet en is enkel toegankelijk voor geauthenticeerde gebruikers. De website hebben we (op de DEV-post) dan ook toegankelijk gemaakt voor de Everyone groep. Anonymous toegang staat overigens af voor de website.
Ook belangrijk om weten is dat de fout niet optreedt bij enkel compileren. Het probleem is dus het runnen, niet het compileren. Er verschijnen ook geen fouten in de Event-log.

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305


  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
Niemand?

We hebben ondertussen een ticket geopend bij MS en ik laat wel iets weten van zodra ik zelf iets hoor. Maar aangezien het vrij dringend/belangrijk is wou ik de aandacht nog even vestigen op dit probleem ;)

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305


  • apa
  • Registratie: April 2001
  • Laatst online: 04-10-2025

apa

Run Forest, ruuuuuuuuuunnnnn!!

Topicstarter
Zoals beloofd komt hier de oplossing:

Stap 1: voeg vb6.exe toe aan DCOM config:
Zie Microsoft knowledge-base.
Daarna moeten de nodige permissies daarop gezet worden voor ACCESS, LAUNCH en CONFIGURE via Component Services voor vb6.exe.

Stap 2: directory services lookup disablen voor COM+:
Vanaf XP tracht COM+ andere COM+ applicaties te vinden die geregistreerd zijn in dezelfde COM+ partition in Active Directory. Als er geen Directory Service aanwezig is (zoals bij ons het geval), dan geeft deze lookup een fout terug. Dit is een bug in Component Services. De lookup kan ge-disabled worden met volgend script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Dim boolSTE
Dim objCatalog 
Dim objRemoteRootColl 
Dim objRemoteComputerColl 
Dim objRemoteComputerItem  

'--- Connect to administration of COM+
Set objCatalog = CreateObject("COMAdmin.COMAdminCatalog")

' Get local machine's component services
Set objRemoteRootColl = objCatalog.Connect("<MACHINE NAME>")

' Get remote machines' compontent services
Set objRemoteComputerColl = objRemoteRootColl.GetCollection("LocalComputer", objRemoteRootColl.Name)
objRemoteComputerColl.Populate
Set objRemoteComputerItem = objRemoteComputerColl.Item(0)
 
objRemoteComputerItem.Value("DSPartitionLookupEnabled") = FALSE

'--- Update local and remote Component Services
objRemoteComputerColl.SaveChanges
objRemoteRootColl.SaveChanges

'--- Deallocation
Set objRemoteComputerItem = Nothing
Set objRemoteComputerColl = Nothing
Set objRemoteRootColl = Nothing
Set objCatalog = Nothing
(deze script kan uitgevoerd worden door deze op te slaan via notepad in een bestand met VBS-extensie)

Vervang daarin <MACHINE_NAME> door de naam van je eigen machine. Je kan de lookup weer inschakelen door de FALSE in bovenstaand script te vervangen door TRUE.

Bedankt voor de antwoorden en ik hoop dat anderen hier iets aan hebben!

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305

Pagina: 1