Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment creer un objet COM sur un serveur distant ?

6 réponses
Avatar
Michael Moreno
Bonjour,

Je ne parviens pas a creer un object COM sur un serveur distant.

Pouvez-vous m'aider svp ?

Ce code plante sur Activator.CreateInstance:

m_SD_RPCType =
Type.GetTypeFromProgID("SD_ProcessUtils.SD_RemoteProcessControl",
"SALW052", true);
m_RPC = (SD_RemoteProcessControl)
Activator.CreateInstance(m_SD_RPCType);


L'erreur est : Class not registered

Or ce code marche parfaitement :

m_RPC = new SD_RemoteProcessControlClass();

et "SALW052" est le nom de ma machine.

Pouvez-vous m'aider svp ?

Merci.

--
----
http://michael.moreno.free.fr/

6 réponses

Avatar
Simon Mourier
Il faut que tout soit bien installé. "Class not registered" ca veut dire
qu'il manque des informations dans la base de registre sur le client et / ou
le serveur.
Sur le client il faut avoir enregistré la TLB ou la DLL proxy et sur le
serveur, il faut avoir enregistré la TLB et / ou la DLL COM, en fonction du
genre d'objet.

Simon.
www.softfluent.com



"Michael Moreno" a écrit dans le message
de news:
Bonjour,

Je ne parviens pas a creer un object COM sur un serveur distant.

Pouvez-vous m'aider svp ?

Ce code plante sur Activator.CreateInstance:

m_SD_RPCType =
Type.GetTypeFromProgID("SD_ProcessUtils.SD_RemoteProcessControl",
"SALW052", true);
m_RPC = (SD_RemoteProcessControl) Activator.CreateInstance(m_SD_RPCType);


L'erreur est : Class not registered

Or ce code marche parfaitement :

m_RPC = new SD_RemoteProcessControlClass();

et "SALW052" est le nom de ma machine.

Pouvez-vous m'aider svp ?

Merci.

--
----
http://michael.moreno.free.fr/



Avatar
Michael Moreno
Bonjour,

Il faut que tout soit bien installé. "Class not registered" ca veut dire
qu'il manque des informations dans la base de registre sur le client et / ou
le serveur.
Sur le client il faut avoir enregistré la TLB ou la DLL proxy et sur le
serveur, il faut avoir enregistré la TLB et / ou la DLL COM, en fonction du
genre d'objet.



La machine serveur est ma machine de dev en l'occurrence.

Le COM (que je developpe moi-meme) marche parfaitement depuis Delphi,
VB et Excel et meme C# si j'utilise l'operateur new.
Je ne parviens cependant pas a le creer avec un appel a
Activator.CreateInstance.

J'ai essaye avec le CLSID et j'ai le meme probleme qu'avec le ProgID.
L'erreur me dit : Class not registered alors que la classe est bien
enregistree.

--
----
http://michael.moreno.free.fr/
Avatar
Simon Mourier
Il n'y a pas à tortiller "Class not registered", c'est un problème de ...
classe non enregistrée "quelque part" (client, serveur).
Ca peut être local, ou distant. On peut essayer aussi d'utiliser Regmon de
www.sysinternals.com pour voir quelles sont les clés de registres lues.

Simon.
www.softfluent.com

"Michael Moreno" a écrit dans le message
de news:
Bonjour,

Il faut que tout soit bien installé. "Class not registered" ca veut dire
qu'il manque des informations dans la base de registre sur le client et /
ou le serveur.
Sur le client il faut avoir enregistré la TLB ou la DLL proxy et sur le
serveur, il faut avoir enregistré la TLB et / ou la DLL COM, en fonction
du genre d'objet.



La machine serveur est ma machine de dev en l'occurrence.

Le COM (que je developpe moi-meme) marche parfaitement depuis Delphi, VB
et Excel et meme C# si j'utilise l'operateur new.
Je ne parviens cependant pas a le creer avec un appel a
Activator.CreateInstance.

J'ai essaye avec le CLSID et j'ai le meme probleme qu'avec le ProgID.
L'erreur me dit : Class not registered alors que la classe est bien
enregistree.

--
----
http://michael.moreno.free.fr/



Avatar
Michael Moreno
Merci,

Si au lieu du nom de ma machine je tape NomDomaineNomMachine ou bien
l'adresse IP, l'erreur devient The RPC server is unavailable.

Ca va me rendre marteau ce truc !!!

--

----------------------------------------------

http://michael.moreno.free.fr/
Avatar
Simon Mourier
NomDomainNomMachine n'est pas une syntaxe appropriée, donc c'est normal que
ca ne fonctionne pas. Pour l'adresse IP ca devrait marcher.

"RPC server is unavailable", c'est soit que le nom de machine n'existe pas
(dans ce cas, le CreateInstance est un peu plus long), soit que le service
DCOM (RPCSS hébergé dans un processus SVCHOST.EXE) n'est pas démarré, ou est
inaccessible (firewall, ...).

Attention avec Windows XP SP2, DCOM est je crois désactivé par défaut. Il
faut lancer DCOMCNFG et configurer DCOM et les applications COM+

Simon.
www.softfluent.com


Note: mais ceci est foncièrement différent de "class not registered".

"Michael Moreno" a écrit dans le message de news:

Merci,

Si au lieu du nom de ma machine je tape NomDomaineNomMachine ou bien
l'adresse IP, l'erreur devient The RPC server is unavailable.

Ca va me rendre marteau ce truc !!!

--

----------------------------------------------

http://michael.moreno.free.fr/




Avatar
Michael Moreno
Merci bien. Je suis parvenu a creer mon objet sans donner le nom du
serveur mais en configurant COM+ pour qu'il point sur le bon serveur.

--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/