Avatar billede red_october Nybegynder
20. august 2001 - 13:59 Der er 8 kommentarer

Hvordan får man fat i en COM-objekt reference på en anden server?

I ASP kan man oprette en COM-objekt på en anden server end der hvor scriptet selv kører. Er det også muligt at oprette et COM-objekt på server A for derefter at bruge det på server B. Hvis ja, hvordan får server B fat i en reference til objektet på server A?

Hjælp :)
Avatar billede jespernaur Nybegynder
20. august 2001 - 18:18 #1
Det er noget med programmet dcomcnfg.exe - se fx

    http://support.microsoft.com/support/kb/articles/Q183/6/07.ASP
    http://support.microsoft.com/support/kb/articles/Q176/7/99.ASP


der er blandt andet en række yderligere links

Mvh
Jesper Naur
Avatar billede red_october Nybegynder
20. august 2001 - 18:31 #2
Altså det er jo ikke bare et spørgsmål om at slå DCOM til og fra, objektet kan allerede køre distribueret ellers kunne man slet ikke oprette det remote på en anden server. Problemet er hvordan man får fat i en peger til et eksisterende objekt på en anden server.
Avatar billede jespernaur Nybegynder
20. august 2001 - 20:51 #3
Ved at gå lidt videre fra de links, jeg angav ovenfor, fandt jeg følgende:

    http://support.microsoft.com/support/kb/articles/Q266/7/17.ASP

Det drejer sig tilsyneladende om, at der ved bygningen af serverobjektet opstår
en .tlb fil, som man skal få installeret på client-maskinen. Derved bliver det
muligt at få fat i server-objektet ved en helt almindelig CreateObject.

Hvis du ikke synes det er godt nok, så se dig lidt for på de omkringliggende øer
om der ikke skulle være noget mere.

Mvh
Jesper Naur
Avatar billede red_october Nybegynder
21. august 2001 - 10:00 #4
Hej Jesper - Jeg sætter pris på din stædige vedholden, men som jeg skriver er jeg netop IKKE interesseret i CreateObject fordi den laver en NY instans af serverobjektet. Instansen eksisterer allerede - det jeg er interesseret i er at få en peger til denne instans, som allerede er oprettet. Du behøver ikke have en .tlb fil liggende på klienten, du behøver faktisk overhovedet ikke at have noget liggende på klienten. Hvis det var nødvendigt var der rigtig mange .ASP sider der slet ikke ville virke. Men hvis dit ASP-script serviceres på en anden server end der hvor COM objektet ligger skal man lave nogle tilføjelser i registry.

Jeg hælder nok til at tro at det ikke lige så nemt kan lade sig gøre.

Mvh
Rune
Avatar billede jespernaur Nybegynder
22. august 2001 - 19:53 #5
Hej Rune.

En reference til en allerede eksisterende objekt-instans skaffes med GetObject. Men: Uanset
om man bruger GetObject eller CreateObject, skal der laves tilføjelser til registry,
hvis man som client skal anvende en COM-objekt der ligger på en anden server. Jeg har
på mit arbejde fundet flg bog:

Ted Pattison
Programming Distributed Applications
with COM and Visual Basic 6.0
Microsoft Press
ISBN 1-57231-961-5

En hurtig gennembladring antyder, at den indeholder detaillerede anvisninger på,
hvordan man skal bære sig ad med at opnå præcis det, du ønsker. Jeg må stærkt
anbefale dig at anskaffe den.

Mht hvor svært eller nemt noget er, vil det altid være svært, hvis man ikke ved hvordan. Når man så finder ud af det, bliver det lige pludselig nemt.

Mvh
Jesper Naur

(og afvis nu ikke fordi jeg har undladt at skrive bogen af i mit svar!)
Avatar billede red_october Nybegynder
23. august 2001 - 10:22 #6
Hmmm - Altså du får dine point hvis du helt præcist kan fortælle mig hvordan jeg skulle kunne bruge GetObject til at få en reference på en anden server. Funktionen har jo ikke engang en parameter til angive hvilken server man vil have fat i. Sådan som jeg forstår den kan den indlæse et objekt på baggrund af en fil?

Jeg vil undersøge den bog du angiver, men du skal jo lige være opmærksom på at på visse områder er ret store forskelle mellem VB og ASP.

Jeg vender tilbage ...
Avatar billede jespernaur Nybegynder
23. august 2001 - 14:59 #7
Jeg skal have at vide, hvilket sprog dit COM-objekt er skrevet i, og hvilket udviklings-miljø, du bruger til at generere det.
Avatar billede red_october Nybegynder
23. august 2001 - 15:02 #8
Det er skrevet i C++ og jeg bruger Visual C++ som compiler.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

GenAI-specialist i PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

IT-Sikkerhedsrådgiver til Cyberdivisionen i Hvidovre

BEC Financial Technologies

Business Continuity Manager - Technical

Netcompany A/S

IT Consultant