OVH Cloud OVH Cloud

Communication COM

8 réponses
Avatar
Christian Viguier
Bonjour,

Nous voulons qu'une application C# exécutée en service Windows communique en
Interop COM avec un autre logiciel.
Lors de l'exécution de Activator.CreateInstance(), Le message d'erreur
suivant apparait : Impossible d'exécuter le serveur.
Le type d'objet créé est défini par le serveur par l'instruction
Type.GetTypeFromProgID().

Lorsque l'application est lancée sans être un service Windows, le
fonctionnement est correcte.

Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?

8 réponses

Avatar
Patrice Manac'h
Bonjour,

le compte utilisé pour le service possède-t'il des droits suffisant ?

Cordialement,

P. Manac'h
MCS France

"Christian Viguier" <Christian wrote in
message news:
Bonjour,

Nous voulons qu'une application C# exécutée en service Windows communique
en
Interop COM avec un autre logiciel.
Lors de l'exécution de Activator.CreateInstance(), Le message d'erreur
suivant apparait : Impossible d'exécuter le serveur.
Le type d'objet créé est défini par le serveur par l'instruction
Type.GetTypeFromProgID().

Lorsque l'application est lancée sans être un service Windows, le
fonctionnement est correcte.

Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?


Avatar
christian Viguier
Le probleme est le meme avec une session administrateur.
De plus, le service se lance sous "system" (visible dans la liste des
processus du gestionnaire des taches)



"Patrice Manac'h" a écrit :

Bonjour,

le compte utilisé pour le service possède-t'il des droits suffisant ?

Cordialement,

P. Manac'h
MCS France

"Christian Viguier" <Christian wrote in
message news:
> Bonjour,
>
> Nous voulons qu'une application C# exécutée en service Windows communique
> en
> Interop COM avec un autre logiciel.
> Lors de l'exécution de Activator.CreateInstance(), Le message d'erreur
> suivant apparait : Impossible d'exécuter le serveur.
> Le type d'objet créé est défini par le serveur par l'instruction
> Type.GetTypeFromProgID().
>
> Lorsque l'application est lancée sans être un service Windows, le
> fonctionnement est correcte.
>
> Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?





Avatar
Christian Viguier
Bonjour,

Le probleme est le meme sous une session administrateur.

Cordialement,



"Patrice Manac'h" a écrit :

Bonjour,

le compte utilisé pour le service possède-t'il des droits suffisant ?

Cordialement,

P. Manac'h
MCS France

"Christian Viguier" <Christian wrote in
message news:
> Bonjour,
>
> Nous voulons qu'une application C# exécutée en service Windows communique
> en
> Interop COM avec un autre logiciel.
> Lors de l'exécution de Activator.CreateInstance(), Le message d'erreur
> suivant apparait : Impossible d'exécuter le serveur.
> Le type d'objet créé est défini par le serveur par l'instruction
> Type.GetTypeFromProgID().
>
> Lorsque l'application est lancée sans être un service Windows, le
> fonctionnement est correcte.
>
> Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?





Avatar
Paul Bacelar
Pensez aussi au fait qu'un service, ou les composants qu'il utilise, n'a pas
le même objet de sécurité WorkStation que les programmes de la session
"Utilisateur Interactif". Pensez à vérifiez que votre composant COM est
WorkStation de Service Aware (Pas d'ouverture de fenêtre, etc...)

--
Paul Bacelar

"Christian Viguier" <Christian wrote in
message news:
Bonjour,

Le probleme est le meme sous une session administrateur.

Cordialement,



"Patrice Manac'h" a écrit :

> Bonjour,
>
> le compte utilisé pour le service possède-t'il des droits suffisant ?
>
> Cordialement,
>
> P. Manac'h
> MCS France
>
> "Christian Viguier" <Christian wrote


in
> message news:
> > Bonjour,
> >
> > Nous voulons qu'une application C# exécutée en service Windows


communique
> > en
> > Interop COM avec un autre logiciel.
> > Lors de l'exécution de Activator.CreateInstance(), Le message d'erreur
> > suivant apparait : Impossible d'exécuter le serveur.
> > Le type d'objet créé est défini par le serveur par l'instruction
> > Type.GetTypeFromProgID().
> >
> > Lorsque l'application est lancée sans être un service Windows, le
> > fonctionnement est correcte.
> >
> > Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?
>
>
>


Avatar
Christian Viguier
Bonjour,

Lorsque le service est lancé sous la session « Service Local », j’obtiens
l’erreur : « Accès refusé ».
Or, sous la session « Système Local » ou une autre ayant les droits
administrateur, je retrouve l’erreur : « Échec de l'exécution du serveur ».
Les droits d’un service dépendraient il d’un autre élément que sa session
d’ouverture ?
Cordialement,
Christian Viguier


"Paul Bacelar" a écrit :

Pensez aussi au fait qu'un service, ou les composants qu'il utilise, n'a pas
le même objet de sécurité WorkStation que les programmes de la session
"Utilisateur Interactif". Pensez à vérifiez que votre composant COM est
WorkStation de Service Aware (Pas d'ouverture de fenêtre, etc...)

--
Paul Bacelar

"Christian Viguier" <Christian wrote in
message news:
> Bonjour,
>
> Le probleme est le meme sous une session administrateur.
>
> Cordialement,
>
>
>
> "Patrice Manac'h" a écrit :
>
> > Bonjour,
> >
> > le compte utilisé pour le service possède-t'il des droits suffisant ?
> >
> > Cordialement,
> >
> > P. Manac'h
> > MCS France
> >
> > "Christian Viguier" <Christian wrote
in
> > message news:
> > > Bonjour,
> > >
> > > Nous voulons qu'une application C# exécutée en service Windows
communique
> > > en
> > > Interop COM avec un autre logiciel.
> > > Lors de l'exécution de Activator.CreateInstance(), Le message d'erreur
> > > suivant apparait : Impossible d'exécuter le serveur.
> > > Le type d'objet créé est défini par le serveur par l'instruction
> > > Type.GetTypeFromProgID().
> > >
> > > Lorsque l'application est lancée sans être un service Windows, le
> > > fonctionnement est correcte.
> > >
> > > Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?
> >
> >
> >





Avatar
Simon Mourier
Relisez bien le message de Paul Bacelar plus haut. Potentiellement un
service s'exécute dans un environnement tout à fait différent et pas
uniquement en terme de sécurité.

Il peut aussi s'agir d'accès à la base de registre (pas forcément un
problème de sécurité d'accès à la base de registre), etc...

Avez vous essayé de faire tourner le service dans le même compte que celui
qui utilise le bureau?

Simon.
www.softfluent.com

"Christian Viguier" <Christian a écrit
dans le message de news:

Bonjour,

Lorsque le service est lancé sous la session « Service Local », j'obtiens
l'erreur : « Accès refusé ».
Or, sous la session « Système Local » ou une autre ayant les droits
administrateur, je retrouve l'erreur : « Échec de l'exécution du
serveur ».
Les droits d'un service dépendraient il d'un autre élément que sa session
d'ouverture ?
Cordialement,
Christian Viguier


"Paul Bacelar" a écrit :

Pensez aussi au fait qu'un service, ou les composants qu'il utilise, n'a
pas
le même objet de sécurité WorkStation que les programmes de la session
"Utilisateur Interactif". Pensez à vérifiez que votre composant COM est
WorkStation de Service Aware (Pas d'ouverture de fenêtre, etc...)

--
Paul Bacelar

"Christian Viguier" <Christian wrote
in
message news:
> Bonjour,
>
> Le probleme est le meme sous une session administrateur.
>
> Cordialement,
>
>
>
> "Patrice Manac'h" a écrit :
>
> > Bonjour,
> >
> > le compte utilisé pour le service possède-t'il des droits suffisant ?
> >
> > Cordialement,
> >
> > P. Manac'h
> > MCS France
> >
> > "Christian Viguier" <Christian
> > wrote
in
> > message news:
> > > Bonjour,
> > >
> > > Nous voulons qu'une application C# exécutée en service Windows
communique
> > > en
> > > Interop COM avec un autre logiciel.
> > > Lors de l'exécution de Activator.CreateInstance(), Le message
> > > d'erreur
> > > suivant apparait : Impossible d'exécuter le serveur.
> > > Le type d'objet créé est défini par le serveur par l'instruction
> > > Type.GetTypeFromProgID().
> > >
> > > Lorsque l'application est lancée sans être un service Windows, le
> > > fonctionnement est correcte.
> > >
> > > Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?
> >
> >
> >







Avatar
Christian Viguier
Le probleme reste meme lorsque je lance le service sous le meme compte que
celui du bureau.
Il n'y a pas d'accès à la base de registre dans mon programme.



"Simon Mourier" a écrit :

Relisez bien le message de Paul Bacelar plus haut. Potentiellement un
service s'exécute dans un environnement tout à fait différent et pas
uniquement en terme de sécurité.

Il peut aussi s'agir d'accès à la base de registre (pas forcément un
problème de sécurité d'accès à la base de registre), etc...

Avez vous essayé de faire tourner le service dans le même compte que celui
qui utilise le bureau?

Simon.
www.softfluent.com

"Christian Viguier" <Christian a écrit
dans le message de news:

> Bonjour,
>
> Lorsque le service est lancé sous la session « Service Local », j'obtiens
> l'erreur : « Accès refusé ».
> Or, sous la session « Système Local » ou une autre ayant les droits
> administrateur, je retrouve l'erreur : « Échec de l'exécution du
> serveur ».
> Les droits d'un service dépendraient il d'un autre élément que sa session
> d'ouverture ?
> Cordialement,
> Christian Viguier
>
>
> "Paul Bacelar" a écrit :
>
>> Pensez aussi au fait qu'un service, ou les composants qu'il utilise, n'a
>> pas
>> le même objet de sécurité WorkStation que les programmes de la session
>> "Utilisateur Interactif". Pensez à vérifiez que votre composant COM est
>> WorkStation de Service Aware (Pas d'ouverture de fenêtre, etc...)
>>
>> --
>> Paul Bacelar
>>
>> "Christian Viguier" <Christian wrote
>> in
>> message news:
>> > Bonjour,
>> >
>> > Le probleme est le meme sous une session administrateur.
>> >
>> > Cordialement,
>> >
>> >
>> >
>> > "Patrice Manac'h" a écrit :
>> >
>> > > Bonjour,
>> > >
>> > > le compte utilisé pour le service possède-t'il des droits suffisant ?
>> > >
>> > > Cordialement,
>> > >
>> > > P. Manac'h
>> > > MCS France
>> > >
>> > > "Christian Viguier" <Christian
>> > > wrote
>> in
>> > > message news:
>> > > > Bonjour,
>> > > >
>> > > > Nous voulons qu'une application C# exécutée en service Windows
>> communique
>> > > > en
>> > > > Interop COM avec un autre logiciel.
>> > > > Lors de l'exécution de Activator.CreateInstance(), Le message
>> > > > d'erreur
>> > > > suivant apparait : Impossible d'exécuter le serveur.
>> > > > Le type d'objet créé est défini par le serveur par l'instruction
>> > > > Type.GetTypeFromProgID().
>> > > >
>> > > > Lorsque l'application est lancée sans être un service Windows, le
>> > > > fonctionnement est correcte.
>> > > >
>> > > > Quelqu'un a t'il déjà rencontré (et résolu) ce genre de problème ?
>> > >
>> > >
>> > >
>>
>>
>>





Avatar
Paul Bacelar
Le problème n'est pas forcement le compte d'exécution mais la "WorkStation"
qui est différente entre les programmes lancés en service et les programmes
lancés depuis une session utilisateur. Une action avec le compte A peut
échouer sous la WorkStation des Services, et cette même action avec le même
compte A peut réussir depuis la WorkStation de l'utilisateur interactif.

Le cas le plus trivial est l'appel à MessageBox(...) depuis un service qui
se soldera systématiquement pas une erreur car la WorkStation des services
n'a pas accès à l'écran ni au clavier.

Il faut donc voir si votre composant COM est "Service Aware".

--
Paul Bacelar

"Christian Viguier" wrote in
message news:

Le probleme reste meme lorsque je lance le service sous le meme compte que
celui du bureau.
Il n'y a pas d'accès à la base de registre dans mon programme.



"Simon Mourier" a écrit :

> Relisez bien le message de Paul Bacelar plus haut. Potentiellement un
> service s'exécute dans un environnement tout à fait différent et pas
> uniquement en terme de sécurité.
>
> Il peut aussi s'agir d'accès à la base de registre (pas forcément un
> problème de sécurité d'accès à la base de registre), etc...
>
> Avez vous essayé de faire tourner le service dans le même compte que


celui
> qui utilise le bureau?
>
> Simon.
> www.softfluent.com
>
> "Christian Viguier" <Christian a


écrit
> dans le message de news:
>
> > Bonjour,
> >
> > Lorsque le service est lancé sous la session « Service Local »,


j'obtiens
> > l'erreur : « Accès refusé ».
> > Or, sous la session « Système Local » ou une autre ayant les droits
> > administrateur, je retrouve l'erreur : « Échec de l'exécution du
> > serveur ».
> > Les droits d'un service dépendraient il d'un autre élément que sa


session
> > d'ouverture ?
> > Cordialement,
> > Christian Viguier
> >
> >
> > "Paul Bacelar" a écrit :
> >
> >> Pensez aussi au fait qu'un service, ou les composants qu'il utilise,


n'a
> >> pas
> >> le même objet de sécurité WorkStation que les programmes de la


session
> >> "Utilisateur Interactif". Pensez à vérifiez que votre composant COM


est
> >> WorkStation de Service Aware (Pas d'ouverture de fenêtre, etc...)
> >>
> >> --
> >> Paul Bacelar
> >>
> >> "Christian Viguier" <Christian


wrote
> >> in
> >> message news:
> >> > Bonjour,
> >> >
> >> > Le probleme est le meme sous une session administrateur.
> >> >
> >> > Cordialement,
> >> >
> >> >
> >> >
> >> > "Patrice Manac'h" a écrit :
> >> >
> >> > > Bonjour,
> >> > >
> >> > > le compte utilisé pour le service possède-t'il des droits


suffisant ?
> >> > >
> >> > > Cordialement,
> >> > >
> >> > > P. Manac'h
> >> > > MCS France
> >> > >
> >> > > "Christian Viguier" <Christian
> >> > > wrote
> >> in
> >> > > message


news:
> >> > > > Bonjour,
> >> > > >
> >> > > > Nous voulons qu'une application C# exécutée en service Windows
> >> communique
> >> > > > en
> >> > > > Interop COM avec un autre logiciel.
> >> > > > Lors de l'exécution de Activator.CreateInstance(), Le message
> >> > > > d'erreur
> >> > > > suivant apparait : Impossible d'exécuter le serveur.
> >> > > > Le type d'objet créé est défini par le serveur par


l'instruction
> >> > > > Type.GetTypeFromProgID().
> >> > > >
> >> > > > Lorsque l'application est lancée sans être un service Windows,


le
> >> > > > fonctionnement est correcte.
> >> > > >
> >> > > > Quelqu'un a t'il déjà rencontré (et résolu) ce genre de


problème ?
> >> > >
> >> > >
> >> > >
> >>
> >>
> >>
>
>
>