11 Stimmen

Das Abrufen der COM-Klassenfabrik für die Komponente mit der CLSID {XXXX} ist aufgrund des folgenden Fehlers fehlgeschlagen: 80080005

Was ist der Fehlerbehebungsprozess für die "Abrufung der COM-Klassenfabrik für die Komponente mit der CLSID {XXXX} ist aufgrund des folgenden Fehlers fehlgeschlagen: 80080005" Fehler in .Net? Zur Klarstellung: Ich erhalte dies zur Laufzeit auf meinem XP-Rechner, wobei der Client .Net-Code unter einem Administratorkonto ausführt. {XXXX} bezieht sich auf eine unserer hauseigenen COM-Komponenten.

Soweit ich weiß, bezieht sich 0x80080005 auf "Zugriff verweigert", aber wo gehe ich hin, um die Berechtigungen zu überprüfen/ändern? Oder liege ich hier völlig falsch, und der Fehler kommt von der Komponente selbst und nicht aus dem Windows-COM-Subsystem?

1 Stimmen

Deine Frage könnte zu vage sein, um eine bedeutungsvolle Antwort zu erhalten. Erhältst du diesen Fehler zur Kompilier- oder Laufzeit? Welches COM-Komponente verursacht den Fehler? Wenn der Fehler zur Laufzeit auftritt, läuft es als Nicht-Admin-Benutzer auf XP oder Vista?

1 Stimmen

Wirklich mehr Informationen benötigt, um zu antworten. Ist Ihre App eine Desktop-App? Läuft sie als Standardbenutzer oder als Administrator? Ist das COM-Objekt lokal oder remote?

0 Stimmen

Ich bin auf etwas Ähnliches gestoßen. Ich kann sagen - zumindest aus eigener Erfahrung -, dass dies von einer App verursacht werden kann, die lokal ausgeführt wird, unter dem Kontext eines Dienstkontos, während dieses Dienstkontos Ihr eigener Benutzername ist, während Sie Administratorrechte auf dem Computer haben, und das COM-Objekt lokal auf dem Computer war. Der Fehler tritt auf, wenn versucht wird, Code zu initialisieren, der auf das COM-Objekt zugreift. Ich stimme zu, dass das COM-Objekt noch ausgelassen wird - in meinem Beispiel war es das Word-Objekt.

10voto

Mark Brackett Punkte 83046

Scheint ein eher generischer Fehler im Zusammenhang mit dem Starten des COM-Servers zu sein. Mögliche Probleme sind Timeouts, Anmeldungsfehler (überprüfen Sie die Frage zu CO_E_SERVER_EXEC_FAILURE), oder Sicherheitsberechtigungen, oder (offensichtlich) ein VS2008 ATL-Bug. Ein Fehler bei CreateInstance würde auch funktionieren, denke ich.

Ich würde damit beginnen, das Ereignisprotokoll auf interessante Einträge zu überprüfen.

0 Stimmen

Ich habe gerade den Quellcode des Servers ausgegraben. Es ist C++/ATL. Schauder. Es scheint einfacher zu sein, mit diesem Zeug herumzuarbeiten, als bis zum Kern vorzudringen.

1 Stimmen

Hallo. Dein Beitrag ist sehr interessant. Allerdings scheinen die Links darin ein Syntaxproblem zu haben, und die secfac.htm scheint zu alt.pluralsight.com/wiki/default.aspx/Keith/… verschoben worden zu sein.

1 Stimmen

Sie sollten Antworten vermeiden, die nur Links enthalten, und stattdessen einige der aufgeführten Punkte zur Überprüfung bereitstellen. Die Links zu "Anmeldescheitern" und "Sicherheitsberechtigungen" sind bereits ungültig. Der ATL-Bug sollte nicht mehr auftreten, wenn der Entwickler VS 2008 SP1 oder höher verwendet.

1voto

Roger Lipscombe Punkte 84868

0x80080005 laut ERRLOOK.EXE "Serverausführung fehlgeschlagen". WinError.h listet dies als CO_E_SERVER_EXEC_FAILURE auf. Nicht "Zugriff verweigert".

2 Stimmen

D'oh. Danke! Bedeutet das, dass der Server fehlgeschlagen ist oder dass COM nicht in der Lage war, den Server zu instanziieren?

1 Stimmen

Dies sollte als Kommentar und nicht als Antwort gemacht werden. Das behebt nichts.

0voto

Eric Ness Punkte 9371

Etwas, worauf Sie sich ansehen können, ist die DCOM-Sicherheitskonfiguration. Sie wird vom Dienstprogramm dcomcnfg gesteuert. Im Web gibt es hilfreiche Tutorial-Videos, die erklären, wie man es benutzt. In einem Thread im ASP.NET-Forum wird auch diskutiert, wie man dcomcnfg verwendet.

1 Stimmen

Link-Antworten sind nicht erwünscht. Das Tutorial ist jetzt ein Toter Link. Der Thread ist relevant - was er getan hat, war, Berechtigungen zum DCOM Config > Microsoft Word 93-2000 Remote-Startaktivierung für das Netzwerkdienstkonto hinzuzufügen. Du hättest das hier hinzufügen sollen. Ein SO-Link (der so lange aktiv sein wird, wie diese Seite existiert) hat die Anweisungen dazu, wie das gemacht wird, obwohl sie empfehlen, den Interaktiven Benutzer oder keinen zu verwenden, wenn das nicht funktioniert, also 3 Optionen: stackoverflow.com/questions/3477086/…

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X