2008-11-10 19 views
10

Quel est le processus de dépannage pour la récupération de l'usine de classe COM pour le composant avec CLSID {XXXX} échoué en raison de l'erreur suivante: 80080005 "erreurs dans .Net? Pour clarifier: Je reçois ceci au moment de l'exécution, sur ma machine XP, avec le client étant le code de. Net fonctionnant sous le compte d'admin. {XXXX} fait référence à l'un de nos composants COM internes. D'après ce que je comprends, 0x80080005 fait référence à «autorisation refusée», mais où dois-je aller pour vérifier/changer les permissions? Ou ai-je complètement tort ici, et l'erreur vient du composant lui-même, et non du sous-système Windows COM?La récupération de la fabrique de classe COM pour le composant avec CLSID {XXXX} a échoué en raison de l'erreur suivante: 80080005

+0

Vraiment besoin de plus d'informations pour répondre. Votre application est-elle une application de bureau? Est-ce qu'il fonctionne en tant qu'utilisateur std ou administrateur? L'objet COM est-il local ou distant? –

+0

Votre question peut être trop vague pour recevoir une réponse significative. Recevez-vous cette erreur lors de la compilation? Run-time? Quel composant COM provoque l'erreur? Si l'erreur survient au moment de l'exécution, courez-vous en tant qu'utilisateur non administrateur sous XP ou Vista? –

Répondre

9

Semble être une erreur plutôt générique liée au démarrage du serveur COM. Les questions possibles comprennent timeouts, logon failures (vérifiez le Q sur CO_E_SERVER_EXEC_FAILURE), ou security permissions, ou (évidemment) un VS2008 ATL bug. Frapper une erreur dans CreateInstance ferait aussi l'affaire, je pense. Je commencerais par vérifier Event Log pour quelque chose d'intéressant.

+0

Je viens de déterrer le code source du serveur. C'est C++/ATL. Frémir. Il semble qu'il soit plus facile de contourner ce problème pour aller au fond des choses. – user8032

+1

Bonjour. Votre message est très intéressant. Cependant, les liens qui s'y trouvent semblent avoir un problème de syntaxe, et le secfac.htm semble être passé à http://alt.pluralsight.com/wiki/default.aspx/Keith/ComSecurityFaqEx2.html – chiccodoro

2

0x80080005 est "L'exécution du serveur a échoué", selon ERRLOOK.EXE. WinError.h liste ceci comme CO_E_SERVER_EXEC_FAILURE. Pas "Accès refusé".

+1

D'oh. Merci! Cela signifie-t-il que le serveur a échoué ou que COM n'a pas réussi à instancier le serveur? – user8032

0

Une chose que vous pouvez regarder est la configuration de sécurité DCOM. Il est contrôlé par l'utilitaire dcomcnfg. Il y a helpful tutorial videos sur le Web pour expliquer comment l'utiliser. Il y a aussi un forum thread on the ASP.NET qui explique comment utiliser dcomcnfg.