/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Problem med DCOM kald fra IE5
Fra : Jesper Højgaard


Dato : 17-04-01 17:14

Hej NG's

Jeg har et problem med kald af en hjemmelavet .dll fra klientscript i en
browser. Setup er følgende

ActiveX DLL DTTest indeholdende klasse clsTest med følgende kode

Option Explicit

Public Function GetWorld() As String
GetWorld = "Hello World"
End Function

Denne dll er kompileret og lagt ind i COM+ på en Windows 2000 server
"dkcphntmts". Den er ligeledes registreret på klientpc'en.

Følgende kode ligger i default.asp på et site på samme server:

<html>
<head>
<meta name="VI60_defaultClientScript" content="VBScript">
<title>Test</title>

<script LANGUAGE="vbscript">
dim objocxobject

set objocxobject = createobject ("DTTest.clsTest", "dkcphntmts")
msgbox objocxobject.getworld
</script>
<body>
</body>
</html>

Alle securitysettings i Internet Explorer 5.01 er sat til Enable.

Og jeg får følgende fejl:

Error: ActiveX component can't create object: 'DTTest.clsTest'

Hvis jeg kører samme kode (altså createobject ("DTTest.clsTest",
"dkcphntmts")) fra Visual Basic 6 kører det fint, så det burde ikke være
registreringen af klassen.

Vi har 2 maskiner, hvor det virker, og derfor er vi nået frem til at det må
være en browsersetting, men vi mener at vi har prøvet alt.

Er der nogen derude, der har har løsningsforslag, er jeg sikker på at de vil
komme med i aftenbønnen hos 4 frustrerede udviklere.

Mvh.
Jesper Højgaard
Deloitte & Touche



 
 
Mila (18-04-2001)
Kommentar
Fra : Mila


Dato : 18-04-01 21:05

Jeg har meget svært ved at forestille mig, at du kan kalde en Active-X i et
klientscript. Du kan sikkert kalde den på serveren.

Jesper Højgaard <jhoejgaard@NOSPAM_deloitte.dk> skrev i en
nyhedsmeddelelse:9bhml7$eov$1@news.inet.tele.dk...
>



Jesper Højgaard (18-04-2001)
Kommentar
Fra : Jesper Højgaard


Dato : 18-04-01 22:21

Det kan jeg godt på to af vores maskiner, og der skulle vel principielt ikke
være forskel på at køre createobject i VB og i klientscript (vbscript).

Det ville ikke hjælpe meget at kalde den fra serveren, da det er en
komponent, der skal up- eller downloade filer til/fra serveren.

Mvh.
Jesper Højgaard

"Mila" <Mila@image.dk> wrote in message
news:8rmD6.215$V3.20834@news000.worldonline.dk...
> Jeg har meget svært ved at forestille mig, at du kan kalde en Active-X i
et
> klientscript. Du kan sikkert kalde den på serveren.
>
> Jesper Højgaard <jhoejgaard@NOSPAM_deloitte.dk> skrev i en
> nyhedsmeddelelse:9bhml7$eov$1@news.inet.tele.dk...
> >
>
>



Jesper Højgaard (19-04-2001)
Kommentar
Fra : Jesper Højgaard


Dato : 19-04-01 19:15

Vi har fundet ud af at Createobject ikke virker når vi angiver et servernavn
til sidst, som den skal. Den forsøger bare at lave objektet lokalt -
skrammel.

Vi har nu fundet følgende i vejledningen til VBScripts CreateObject:
Creating an object on a remote server can only be accomplished when Internet
security is turned off. You can create an object on a remote networked
computer by passing the name of the computer to the servername argument of
CreateObject. That name is the same as the machine name portion of a
sharename. For a network share named "\\myserver\public", the servername is
"myserver". In addition, you can specify servername using DNS format or an
IP address.

Hvad er Internet Security???? Og hvor slår jeg det fra????

Jeg har slået al sikkerhed fra i mine browser.

Mvh.
Jesper

"Jesper Højgaard" <jhoejgaard@NOSPAM_deloitte.dk> wrote in message
news:9bhml7$eov$1@news.inet.tele.dk...
> Hej NG's
>
> Jeg har et problem med kald af en hjemmelavet .dll fra klientscript i en
> browser. Setup er følgende
>
> ActiveX DLL DTTest indeholdende klasse clsTest med følgende kode
>
> Option Explicit
>
> Public Function GetWorld() As String
> GetWorld = "Hello World"
> End Function
>
> Denne dll er kompileret og lagt ind i COM+ på en Windows 2000 server
> "dkcphntmts". Den er ligeledes registreret på klientpc'en.
>
> Følgende kode ligger i default.asp på et site på samme server:
>
> <html>
> <head>
> <meta name="VI60_defaultClientScript" content="VBScript">
> <title>Test</title>
>
> <script LANGUAGE="vbscript">
> dim objocxobject
>
> set objocxobject = createobject ("DTTest.clsTest", "dkcphntmts")
> msgbox objocxobject.getworld
> </script>
> <body>
> </body>
> </html>
>
> Alle securitysettings i Internet Explorer 5.01 er sat til Enable.
>
> Og jeg får følgende fejl:
>
> Error: ActiveX component can't create object: 'DTTest.clsTest'
>
> Hvis jeg kører samme kode (altså createobject ("DTTest.clsTest",
> "dkcphntmts")) fra Visual Basic 6 kører det fint, så det burde ikke være
> registreringen af klassen.
>
> Vi har 2 maskiner, hvor det virker, og derfor er vi nået frem til at det

> være en browsersetting, men vi mener at vi har prøvet alt.
>
> Er der nogen derude, der har har løsningsforslag, er jeg sikker på at de
vil
> komme med i aftenbønnen hos 4 frustrerede udviklere.
>
> Mvh.
> Jesper Højgaard
> Deloitte & Touche
>
>



Tomas Christiansen (19-04-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 19-04-01 20:36

Jesper Højgaard skrev:
> Jeg har et problem med kald af en hjemmelavet .dll fra klientscript i en
> browser. Setup er følgende
....
> Denne dll er kompileret og lagt ind i COM+ på en Windows 2000 server
> "dkcphntmts". Den er ligeledes registreret på klientpc'en.

Hvordan er den blevet registreret på klient PC'erne?
Har alle klienterne de rigtige rettigheder på serveren til at kunne
instantiere objektet?

> set objocxobject = createobject ("DTTest.clsTest", "dkcphntmts")
....
> Error: ActiveX component can't create object: 'DTTest.clsTest'

Får du samme fejl, hvis du med vilje skrive klasse-navnet forkert?
Kommer der nogle event i security loggen på serveren?
(Husk at slå logging af diverse security events til.)


> Hvis jeg kører samme kode (altså createobject ("DTTest.clsTest",
> "dkcphntmts")) fra Visual Basic 6 kører det fint, så det burde ikke være
> registreringen af klassen.

Jeg har ført set at VB har været i stand til at instantiere objekter fra
udviklingsmiljøet, men ikke fra en exe-fil, f.eks. hvis der har været noget
galt med registreringen af klassen.

> Vi har 2 maskiner, hvor det virker, og derfor er vi nået frem til at det

> være en browsersetting, men vi mener at vi har prøvet alt.

Har VB udviklingsmiljøet kørt med clsTest på disse to maskiner, men ikke på
de øvrige?

Forresten: Hvilket OS bruger klienterne?

-------
Tomas



Jesper Højgaard (20-04-2001)
Kommentar
Fra : Jesper Højgaard


Dato : 20-04-01 10:09

Tak Tomas for din indsats, men som du kan se i mit andet indlæg har vi
fundet fejlen, og er nu i gang med at lave en udenomsløsning til Microsofts
skrammel

Mvh.
Jesper Højgaard

"Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
news:C6HD6.1456$Em3.13880@news.get2net.dk...
> Jesper Højgaard skrev:
> > Jeg har et problem med kald af en hjemmelavet .dll fra klientscript i en
> > browser. Setup er følgende
> ...
> > Denne dll er kompileret og lagt ind i COM+ på en Windows 2000 server
> > "dkcphntmts". Den er ligeledes registreret på klientpc'en.
>
> Hvordan er den blevet registreret på klient PC'erne?
> Har alle klienterne de rigtige rettigheder på serveren til at kunne
> instantiere objektet?
>
> > set objocxobject = createobject ("DTTest.clsTest", "dkcphntmts")
> ...
> > Error: ActiveX component can't create object: 'DTTest.clsTest'
>
> Får du samme fejl, hvis du med vilje skrive klasse-navnet forkert?
> Kommer der nogle event i security loggen på serveren?
> (Husk at slå logging af diverse security events til.)
>
>
> > Hvis jeg kører samme kode (altså createobject ("DTTest.clsTest",
> > "dkcphntmts")) fra Visual Basic 6 kører det fint, så det burde ikke være
> > registreringen af klassen.
>
> Jeg har ført set at VB har været i stand til at instantiere objekter fra
> udviklingsmiljøet, men ikke fra en exe-fil, f.eks. hvis der har været
noget
> galt med registreringen af klassen.
>
> > Vi har 2 maskiner, hvor det virker, og derfor er vi nået frem til at det
> må
> > være en browsersetting, men vi mener at vi har prøvet alt.
>
> Har VB udviklingsmiljøet kørt med clsTest på disse to maskiner, men ikke

> de øvrige?
>
> Forresten: Hvilket OS bruger klienterne?
>
> -------
> Tomas
>
>



Tomas Christiansen (20-04-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 20-04-01 22:42

Jesper Højgaard skrev:
> Tak Tomas for din indsats, men som du kan se i mit andet indlæg har vi
> fundet fejlen

Okay?
Jeg nåede lige at se dit indlæg inden jeg sendte mit, men opfattede det, som
om at du IKKE havde fundet fejlen!
Man skal da vel for pokker kunne køre et objekt på en server - har selv
gjort det engang da jeg var på et VB5 kursus!

-------
Tomas



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste