IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

COMexception CLSID inconnu


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 17
    Points
    17
    Par défaut COMexception CLSID inconnu
    Bonjour,

    J'ai créé une application en vb.net pour communiquer avec un automate. Je lance mon application bin/release/appli.exe, mon appli se lance bien et s'exécute correctement.

    Mais si je lance un autre logiciel qui communique avec ce même automate en même temps, selon les ordinateurs (version de windows plus ou moins récents) mon application créé une exception sur les windows moins récents :

    System.TypeInitializationException: The type initializer for 'WindowsApplication1' threw an exception. ---> System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {B544D2BD-354C-456E-9E88-20F71625E7DF} failed due to the following error: 80080005 Échec de l'exécution du serveur (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
    Ceci me dépasse totalement, après quelque recherche j'ai cru comprendre qu'il faudrait changer les droits sécurités de cette manière :

    1) Run dcomcnfg open Component Services
    2) Expand Component Services "->" Computer "->" My Computer "->" the DCOM configuration "
    3) Find the application
    4) Right to open the Properties dialog box
    5) Click on the "Security" tab,
    6) "Launch and Activation Permissions, configure permissions, have opted for a custom
    7) Their editing and then click the considered app added to it, and added all the permissions ...
    Mais le problème est : je ne connais pas l'application avec ce CLSID, dans les références sur visual basic aucunes de mes références en COM ont ce CLSID.

    Si ce problème est résolu toute mon application sera terminé et prête à l'emploi mais en attendant elle sert à rien. -_-

    Merci pour votre aide,

    Cordialement

    Neoxaro

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    La méthode que tu as proposé ne donne rien ?

    Tu peux retrouver le CLSID de ton appli dans HKEY_CLASSES_ROOT\CLSID si tu ne la connais pas et dans le service de composant tu repères ton CLSID et lui appliques les droits voulus.

    J'y connais pas grand chose alors je garantis rien.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  3. #3
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Pour l'endroit dans le registre au pire tu fais une recherches avec le Guid.

    Sinon tu testes par code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myType As Type = Type.GetTypeFromCLSID(New Guid("B544D2BD-354C-456E-9E88-20F71625E7DF"))
    Et pour avoir le chemin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myType.Assembly.Location

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    J'ai trouvé grâce à ta commande, j'ai changé toutes les autorisations pour autoriser tous le monde et cela ne change rien, j'ai toujours cette exception que je ne comprend pas.

    le CLSID correspond à : C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll

  5. #5
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    La ou ça ne marche pas, c'est en 64?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    le CLSID correspond à : C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll

    Bon c'est pire que ce que je croyais, la version de windows n'influe apparement pas, j'ai testé sur :

    - windows XP professionnal service pack 2 : ça marche
    - windows XP professionnal service pack 3 : ça marche pas
    - essai sur un autre windows XP professionnal service pack 2 : ça marche pas

    la version de framework est la même sur chaque PC : v4.0.30319

    C'est inconprehensible pour moi.

  7. #7
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Ca ne répond pas à ma question, regarde si les machines ou ça ne marche pas sont bien en 64 bit. Tu peux tester ton application en mettant 'x86' comme cible dans les propriétés du projet->Build->Target version.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par chamamo Voir le message
    Ca ne répond pas à ma question, regarde si les machines ou ça ne marche pas sont bien en 64 bit. Tu peux tester ton application en mettant 'x86' comme cible dans les propriétés du projet->Build->Target version.
    Apparement je suis déjà en 32 bits sur mon application :



    A part cela, j'ai vérifié, Aucun ordinateur est en 64 bits.

    EDIT : Je viens de voir que l'erreur que j'ai est différente sur un des pc de test et sur les pc sur lequel le logiciel doit être implanté.

    Sur les postes, j'ai l'erreur 80040154 class not registered. Je pense que c'est l'exeption la plus importante à résoudre.

    Pour résoudre ce problème, j'ai essayer cette commande :

    regsvr32 nomDeLaDll.dll
    Réponse : The module "le path\mscorlib.dll" was loaded but the entry-point DllRegisterServer was not found"

Discussions similaires

  1. Fonction divisant argument de type inconnu
    Par Nasky dans le forum C
    Réponses: 9
    Dernier message: 29/07/2003, 00h32
  2. Une table qui existe mais qui est inconnu! ?
    Par Nino dans le forum InterBase
    Réponses: 6
    Dernier message: 13/06/2003, 11h47
  3. Erreur de cmd GRANT/REVOKE inconnue ss MySQL323.
    Par brnvrl dans le forum Installation
    Réponses: 3
    Dernier message: 06/03/2003, 11h47
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Fonction port Inconnue...
    Par Nounours666 dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2002, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo