DCOM-Clients können keine Objekte erstellt.


Problembeschreibung


Distributed Component Object Model (DCOM) ausgeführten Clientprogramme in Terminal Server-Sitzung nicht die Konsole Objekte in DCOM Server mit Terminal Server-Dienste implementiert Klassen erstellt werden kann.


Sie erhalten auch Vorkommen der Ereignis-ID: 10010 von DCOM in der Ereignisanzeige mit der folgenden Beschreibung:
Server < Clsid > konnte innerhalb des angegebenen Zeitabschnitts mit DCOM nicht registriert werden.
– oder –
Sie können auch die folgende Fehlermeldung:
CoGetClassObject fehlgeschlagen - Servers konnte CO_E_SERVER_EXEC_FAILURE 0 x 80080005

Ursache


Dieses Verhalten ist da die Objektklassen als User Global DCOM mit Terminal Server gelten.


Allerdings ermöglichen DCOM und Terminalserver DCOM-Klassen als System global registriert. Aber bei Klassen in Services implementiert, sie sollten als System Global, wenn sie explizit als User global registriert wurden.

Problemlösung


Wichtig Dieser Abschnitt bzw. die Methode oder Aufgabe enthält Schritte, die erklären, wie Sie die Registrierung ändern. Allerdings können schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie die folgenden Schritte sorgfältig ausführen. Sichern Sie die Registry für zusätzlichen Schutz, bevor Sie sie ändern. Anschließend können Sie die Registrierung wiederherstellen, falls ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
322756 zum Sichern und Wiederherstellen der Registrierung in Windows

Gehen Sie folgendermaßen vor, um eine DCOM-Klasse explizit als System global zu registrieren:

  1. Wenn es nicht vorhanden ist, erstellen Sie den folgenden Registrierungsschlüssel:
    HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility\CLSID
  2. Erstellen Sie einen Unterschlüssel mit {CLSID} als den Namen die CLSID Klassenbezeichner der DCOM-Klasse ist, die als System global. Beispielsweise wäre ein Unterschlüssel:
    {41116C00-8B90-101B-96CD-00AA003B14FC}
  3. Oben fSystemGlobalClass als Wertnamen Typ REG_DWORD erstellen und auf 1 setzen.
Oder Aktualisieren auf Microsoft Windows 2000 Server mit Terminaldiensten, die nicht dieselbe Einschränkung.

Status


Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die zu Beginn dieses Artikels aufgeführt sind.

Weitere Informationen


Das reproduzieren, verwenden Sie DCOM-Beispiel mit dem Namen "ATLDRAW" mit ActiveX Template Library (ATL) bereitgestellt.