Dienst kann nicht auf COM-Interface zugreifen

Hallo Leute,

hab einen ganz seltsamen Effekt (mehr administrativer Natur):

habe:

  • eine C++ dll die COM-Funktionen anbietet

  • zwei .NET Programme nutzten diese dll / Funktionen (GUI und Dienst)

  • Dienst muss unter einem anderem Benutzerkonto als GUI laufen

  • an einer einzigen Maschine (Win 2000 Server SP4) kann der Dienst die COM-Funktionen nicht aufrufen mit Meldung:
    Das COM-Objekt des Typs „xyz.xyzClass“ kann nicht in den Schnittstellentyp „xyz.Ixyz“ umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID „{123-…-456}“ aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Zugriff verweigert (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED)).’

Jetzt kommt’s

  • An anderen Maschinen geht es (Win 2000Server und Win 2003Server)
  • GUI funzt immer egal unter welchem Benutzerkonto --> Wenn ich mich als Dienstbenutzer anmelde, geht der GUI
  • Wenn ich den Dienst als „Administratorkonto“ oder „Local Systems“ installiere geht er!

Jetzt die Frage:
Weiß jemand wo man was einstellen kann dass das Dienstkonto genug Rechte hat, dass es geht?

Gruß
Thomas

Hallo!

Hast Du schon mal versucht, das COM-Objekt unter verschiedenen Benutzerkonten zu deregistrieren und anschließend wieder zu registrieren (per regsvr32)? Dabei werden üblicherweise die Registryeinträge neu erstellt und die Hoffnung wäre, dass dabei die richtigen Berechtigungen vergeben/vererbt werden.

Ich hatte auch mal den Fall, dass irgendwelche Berechtigungen in der Registry falsch gesetzt waren und es war ein ziemlicher Aufwand, alles so hinzubekommen, dass es wieder wie überall sonst lief.

Mit regedt32 kann man übrigens die Berechtigungen auf Registryeinträgen sehen/ändern, was mit dem „normalen“ regedit ja nicht geht. Wusste ich bis vor diesem Zwischenfall auch nicht.
Vielleicht kommst Du ja darüber weiter…

Viel Glück,

Martin

Hallo Martin,

danke für den Tipp. Muss das mal durchgehen.
Aber leider hat sich jetzt etwas anderes aufgetan mit sehr hoher Priorität, sodass ich für diesen Fehler keine Zeit habe.

Gruß
Thomas