Bonjour,
Meilleurs voeux pour cette nouvelle année 2006.
Je bloque depuis plusieurs jours sur le problème suivant:
J'ai créé un service windows en C# qui fait appel à des fonctions d'une
DLL écrite en C/C++ (code non managé) via DllImport.
Le service fonctionne bien mais quand j'appelle une fonction de la DLL,
il ne se passe rien; j'ai l'impression que le service ne voit pas mes
fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers
un problème.
J'ai mis la DLL dans le même répertoire que l'executable du service
windows et dans le répertoire Windows.System32 sans succès!
Quand j'utilise cette DLL dans un programme console C#, ca marche bien.
Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un
assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela
était pour du code 'managé'.
est-ce que quelqu'un pourrait m'aider ou me donner une piste ?
(j'ai consulté pas mal de site sur le sujet sans trouver de solution)
Merci d'avance,
aVr
PS: j'ai généré ma DLL avec l'option mutilthread.
PS2: j'utilise Visual Studio 2003.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
La Dll a-t-elle été conçue pour tourner dans une application service ? (pas de GUI, pas la même politique de sécurité que l'utilisateur interactif ...) -- Paul Bacelar MVP VC++
"aVr" wrote in message news:43d558fb$0$26083$
Bonjour, Meilleurs voeux pour cette nouvelle année 2006. Je bloque depuis plusieurs jours sur le problème suivant: J'ai créé un service windows en C# qui fait appel à des fonctions d'une DLL écrite en C/C++ (code non managé) via DllImport. Le service fonctionne bien mais quand j'appelle une fonction de la DLL, il ne se passe rien; j'ai l'impression que le service ne voit pas mes fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers un problème. J'ai mis la DLL dans le même répertoire que l'executable du service windows et dans le répertoire Windows.System32 sans succès! Quand j'utilise cette DLL dans un programme console C#, ca marche bien. Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela était pour du code 'managé'. est-ce que quelqu'un pourrait m'aider ou me donner une piste ? (j'ai consulté pas mal de site sur le sujet sans trouver de solution) Merci d'avance, aVr
PS: j'ai généré ma DLL avec l'option mutilthread. PS2: j'utilise Visual Studio 2003.
La Dll a-t-elle été conçue pour tourner dans une application service ? (pas
de GUI, pas la même politique de sécurité que l'utilisateur interactif ...)
--
Paul Bacelar
MVP VC++
"aVr" <avrama@free.fr> wrote in message
news:43d558fb$0$26083$626a14ce@news.free.fr...
Bonjour,
Meilleurs voeux pour cette nouvelle année 2006.
Je bloque depuis plusieurs jours sur le problème suivant:
J'ai créé un service windows en C# qui fait appel à des fonctions d'une
DLL écrite en C/C++ (code non managé) via DllImport.
Le service fonctionne bien mais quand j'appelle une fonction de la DLL, il
ne se passe rien; j'ai l'impression que le service ne voit pas mes
fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers
un problème.
J'ai mis la DLL dans le même répertoire que l'executable du service
windows et dans le répertoire Windows.System32 sans succès!
Quand j'utilise cette DLL dans un programme console C#, ca marche bien.
Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un
assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela était
pour du code 'managé'.
est-ce que quelqu'un pourrait m'aider ou me donner une piste ?
(j'ai consulté pas mal de site sur le sujet sans trouver de solution)
Merci d'avance,
aVr
PS: j'ai généré ma DLL avec l'option mutilthread.
PS2: j'utilise Visual Studio 2003.
La Dll a-t-elle été conçue pour tourner dans une application service ? (pas de GUI, pas la même politique de sécurité que l'utilisateur interactif ...) -- Paul Bacelar MVP VC++
"aVr" wrote in message news:43d558fb$0$26083$
Bonjour, Meilleurs voeux pour cette nouvelle année 2006. Je bloque depuis plusieurs jours sur le problème suivant: J'ai créé un service windows en C# qui fait appel à des fonctions d'une DLL écrite en C/C++ (code non managé) via DllImport. Le service fonctionne bien mais quand j'appelle une fonction de la DLL, il ne se passe rien; j'ai l'impression que le service ne voit pas mes fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers un problème. J'ai mis la DLL dans le même répertoire que l'executable du service windows et dans le répertoire Windows.System32 sans succès! Quand j'utilise cette DLL dans un programme console C#, ca marche bien. Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela était pour du code 'managé'. est-ce que quelqu'un pourrait m'aider ou me donner une piste ? (j'ai consulté pas mal de site sur le sujet sans trouver de solution) Merci d'avance, aVr
PS: j'ai généré ma DLL avec l'option mutilthread. PS2: j'utilise Visual Studio 2003.
aVr
Bonjour, Merci pour votre participation. En fait, c'est une DLL de communication (code C/C++ - non géré) qui à l'origine n'était pas prévu pour fonctionner dans un service windows. J'ai essayé plusieurs choses au niveau sécurité trouvé sur MSDN: http://www.microsoft.com/france/msdn/securite/secmod81.mspx http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/csref/ html/vcwlkSecurityTutorial.asp mais cela ne fonctionne toujours pas. Je ne pense pas faire quelque chose de nouveau. Si vous avez un exemple, je suis preneur... Cordialement, Anil
Paul Bacelar a écrit :
La Dll a-t-elle été conçue pour tourner dans une application servic e ? (pas de GUI, pas la même politique de sécurité que l'utilisateur interac tif ...) -- Paul Bacelar MVP VC++
"aVr" wrote in message news:43d558fb$0$26083$ > Bonjour, > Meilleurs voeux pour cette nouvelle année 2006. > Je bloque depuis plusieurs jours sur le problème suivant: > J'ai créé un service windows en C# qui fait appel à des fonctions d'une > DLL écrite en C/C++ (code non managé) via DllImport. > Le service fonctionne bien mais quand j'appelle une fonction de la DLL, il > ne se passe rien; j'ai l'impression que le service ne voit pas mes > fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers > un problème. > J'ai mis la DLL dans le même répertoire que l'executable du service > windows et dans le répertoire Windows.System32 sans succès! > Quand j'utilise cette DLL dans un programme console C#, ca marche bien. > Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un > assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela était > pour du code 'managé'. > est-ce que quelqu'un pourrait m'aider ou me donner une piste ? > (j'ai consulté pas mal de site sur le sujet sans trouver de solution) > Merci d'avance, > aVr > > PS: j'ai généré ma DLL avec l'option mutilthread. > PS2: j'utilise Visual Studio 2003.
Bonjour,
Merci pour votre participation.
En fait, c'est une DLL de communication (code C/C++ - non géré) qui
à l'origine n'était pas prévu pour fonctionner dans un service
windows.
J'ai essayé plusieurs choses au niveau sécurité trouvé sur MSDN:
http://www.microsoft.com/france/msdn/securite/secmod81.mspx
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/csref/ html/vcwlkSecurityTutorial.asp
mais cela ne fonctionne toujours pas.
Je ne pense pas faire quelque chose de nouveau.
Si vous avez un exemple, je suis preneur...
Cordialement,
Anil
Paul Bacelar a écrit :
La Dll a-t-elle été conçue pour tourner dans une application servic e ? (pas
de GUI, pas la même politique de sécurité que l'utilisateur interac tif ...)
--
Paul Bacelar
MVP VC++
"aVr" <avrama@free.fr> wrote in message
news:43d558fb$0$26083$626a14ce@news.free.fr...
> Bonjour,
> Meilleurs voeux pour cette nouvelle année 2006.
> Je bloque depuis plusieurs jours sur le problème suivant:
> J'ai créé un service windows en C# qui fait appel à des fonctions d'une
> DLL écrite en C/C++ (code non managé) via DllImport.
> Le service fonctionne bien mais quand j'appelle une fonction de la DLL, il
> ne se passe rien; j'ai l'impression que le service ne voit pas mes
> fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers
> un problème.
> J'ai mis la DLL dans le même répertoire que l'executable du service
> windows et dans le répertoire Windows.System32 sans succès!
> Quand j'utilise cette DLL dans un programme console C#, ca marche bien.
> Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un
> assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela était
> pour du code 'managé'.
> est-ce que quelqu'un pourrait m'aider ou me donner une piste ?
> (j'ai consulté pas mal de site sur le sujet sans trouver de solution)
> Merci d'avance,
> aVr
>
> PS: j'ai généré ma DLL avec l'option mutilthread.
> PS2: j'utilise Visual Studio 2003.
Bonjour, Merci pour votre participation. En fait, c'est une DLL de communication (code C/C++ - non géré) qui à l'origine n'était pas prévu pour fonctionner dans un service windows. J'ai essayé plusieurs choses au niveau sécurité trouvé sur MSDN: http://www.microsoft.com/france/msdn/securite/secmod81.mspx http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/csref/ html/vcwlkSecurityTutorial.asp mais cela ne fonctionne toujours pas. Je ne pense pas faire quelque chose de nouveau. Si vous avez un exemple, je suis preneur... Cordialement, Anil
Paul Bacelar a écrit :
La Dll a-t-elle été conçue pour tourner dans une application servic e ? (pas de GUI, pas la même politique de sécurité que l'utilisateur interac tif ...) -- Paul Bacelar MVP VC++
"aVr" wrote in message news:43d558fb$0$26083$ > Bonjour, > Meilleurs voeux pour cette nouvelle année 2006. > Je bloque depuis plusieurs jours sur le problème suivant: > J'ai créé un service windows en C# qui fait appel à des fonctions d'une > DLL écrite en C/C++ (code non managé) via DllImport. > Le service fonctionne bien mais quand j'appelle une fonction de la DLL, il > ne se passe rien; j'ai l'impression que le service ne voit pas mes > fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers > un problème. > J'ai mis la DLL dans le même répertoire que l'executable du service > windows et dans le répertoire Windows.System32 sans succès! > Quand j'utilise cette DLL dans un programme console C#, ca marche bien. > Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un > assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela était > pour du code 'managé'. > est-ce que quelqu'un pourrait m'aider ou me donner une piste ? > (j'ai consulté pas mal de site sur le sujet sans trouver de solution) > Merci d'avance, > aVr > > PS: j'ai généré ma DLL avec l'option mutilthread. > PS2: j'utilise Visual Studio 2003.
Simon Mourier [SoftFluent]
Si c'est un problème avec la DLL de communication, cela ne sert à rien de regarder du code C# / code managé / Code Access Security. Il faut analyser ce qui se passe dans cette DLL, surtout si elle fonctionne en mode console. Parmi les choses qui changent entre console et service:
* la sécurité, pas au niveau .NET, mais au niveau Windows, le compte qui fait tourner le service a-t-il suffisamment d'accès, etc... * l'environnement graphique. par défaut il n'y en a pas, etc...
Bonjour, Merci pour votre participation. En fait, c'est une DLL de communication (code C/C++ - non géré) qui à l'origine n'était pas prévu pour fonctionner dans un service windows. J'ai essayé plusieurs choses au niveau sécurité trouvé sur MSDN: http://www.microsoft.com/france/msdn/securite/secmod81.mspx http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/csref/html/vcwlkSecurityTutorial.asp mais cela ne fonctionne toujours pas. Je ne pense pas faire quelque chose de nouveau. Si vous avez un exemple, je suis preneur... Cordialement, Anil
Paul Bacelar a écrit :
La Dll a-t-elle été conçue pour tourner dans une application service ? (pas de GUI, pas la même politique de sécurité que l'utilisateur interactif ...) -- Paul Bacelar MVP VC++
"aVr" wrote in message news:43d558fb$0$26083$ > Bonjour, > Meilleurs voeux pour cette nouvelle année 2006. > Je bloque depuis plusieurs jours sur le problème suivant: > J'ai créé un service windows en C# qui fait appel à des fonctions d'une > DLL écrite en C/C++ (code non managé) via DllImport. > Le service fonctionne bien mais quand j'appelle une fonction de la DLL, > il > ne se passe rien; j'ai l'impression que le service ne voit pas mes > fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers > un problème. > J'ai mis la DLL dans le même répertoire que l'executable du service > windows et dans le répertoire Windows.System32 sans succès! > Quand j'utilise cette DLL dans un programme console C#, ca marche bien. > Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un > assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela > était > pour du code 'managé'. > est-ce que quelqu'un pourrait m'aider ou me donner une piste ? > (j'ai consulté pas mal de site sur le sujet sans trouver de solution) > Merci d'avance, > aVr > > PS: j'ai généré ma DLL avec l'option mutilthread. > PS2: j'utilise Visual Studio 2003.
Si c'est un problème avec la DLL de communication, cela ne sert à rien de
regarder du code C# / code managé / Code Access Security.
Il faut analyser ce qui se passe dans cette DLL, surtout si elle fonctionne
en mode console. Parmi les choses qui changent entre console et service:
* la sécurité, pas au niveau .NET, mais au niveau Windows, le compte qui
fait tourner le service a-t-il suffisamment d'accès, etc...
* l'environnement graphique. par défaut il n'y en a pas, etc...
"aVr" <avrama@free.fr> a écrit dans le message de news:
1138268662.024153.64460@g44g2000cwa.googlegroups.com...
Bonjour,
Merci pour votre participation.
En fait, c'est une DLL de communication (code C/C++ - non géré) qui
à l'origine n'était pas prévu pour fonctionner dans un service
windows.
J'ai essayé plusieurs choses au niveau sécurité trouvé sur MSDN:
http://www.microsoft.com/france/msdn/securite/secmod81.mspx
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/csref/html/vcwlkSecurityTutorial.asp
mais cela ne fonctionne toujours pas.
Je ne pense pas faire quelque chose de nouveau.
Si vous avez un exemple, je suis preneur...
Cordialement,
Anil
Paul Bacelar a écrit :
La Dll a-t-elle été conçue pour tourner dans une application service ?
(pas
de GUI, pas la même politique de sécurité que l'utilisateur interactif
...)
--
Paul Bacelar
MVP VC++
"aVr" <avrama@free.fr> wrote in message
news:43d558fb$0$26083$626a14ce@news.free.fr...
> Bonjour,
> Meilleurs voeux pour cette nouvelle année 2006.
> Je bloque depuis plusieurs jours sur le problème suivant:
> J'ai créé un service windows en C# qui fait appel à des fonctions d'une
> DLL écrite en C/C++ (code non managé) via DllImport.
> Le service fonctionne bien mais quand j'appelle une fonction de la DLL,
> il
> ne se passe rien; j'ai l'impression que le service ne voit pas mes
> fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers
> un problème.
> J'ai mis la DLL dans le même répertoire que l'executable du service
> windows et dans le répertoire Windows.System32 sans succès!
> Quand j'utilise cette DLL dans un programme console C#, ca marche bien.
> Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un
> assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela
> était
> pour du code 'managé'.
> est-ce que quelqu'un pourrait m'aider ou me donner une piste ?
> (j'ai consulté pas mal de site sur le sujet sans trouver de solution)
> Merci d'avance,
> aVr
>
> PS: j'ai généré ma DLL avec l'option mutilthread.
> PS2: j'utilise Visual Studio 2003.
Si c'est un problème avec la DLL de communication, cela ne sert à rien de regarder du code C# / code managé / Code Access Security. Il faut analyser ce qui se passe dans cette DLL, surtout si elle fonctionne en mode console. Parmi les choses qui changent entre console et service:
* la sécurité, pas au niveau .NET, mais au niveau Windows, le compte qui fait tourner le service a-t-il suffisamment d'accès, etc... * l'environnement graphique. par défaut il n'y en a pas, etc...
Bonjour, Merci pour votre participation. En fait, c'est une DLL de communication (code C/C++ - non géré) qui à l'origine n'était pas prévu pour fonctionner dans un service windows. J'ai essayé plusieurs choses au niveau sécurité trouvé sur MSDN: http://www.microsoft.com/france/msdn/securite/secmod81.mspx http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/csref/html/vcwlkSecurityTutorial.asp mais cela ne fonctionne toujours pas. Je ne pense pas faire quelque chose de nouveau. Si vous avez un exemple, je suis preneur... Cordialement, Anil
Paul Bacelar a écrit :
La Dll a-t-elle été conçue pour tourner dans une application service ? (pas de GUI, pas la même politique de sécurité que l'utilisateur interactif ...) -- Paul Bacelar MVP VC++
"aVr" wrote in message news:43d558fb$0$26083$ > Bonjour, > Meilleurs voeux pour cette nouvelle année 2006. > Je bloque depuis plusieurs jours sur le problème suivant: > J'ai créé un service windows en C# qui fait appel à des fonctions d'une > DLL écrite en C/C++ (code non managé) via DllImport. > Le service fonctionne bien mais quand j'appelle une fonction de la DLL, > il > ne se passe rien; j'ai l'impression que le service ne voit pas mes > fonctions; de plus, je n'ai pas de message d'erreur pour m'orienter vers > un problème. > J'ai mis la DLL dans le même répertoire que l'executable du service > windows et dans le répertoire Windows.System32 sans succès! > Quand j'utilise cette DLL dans un programme console C#, ca marche bien. > Je pense que j'oublie de faire quelque chose: signer la DLL ? créer un > assembly ? l'enregistrer dans le GAC ? mais je croyais que tout cela > était > pour du code 'managé'. > est-ce que quelqu'un pourrait m'aider ou me donner une piste ? > (j'ai consulté pas mal de site sur le sujet sans trouver de solution) > Merci d'avance, > aVr > > PS: j'ai généré ma DLL avec l'option mutilthread. > PS2: j'utilise Visual Studio 2003.