COM-Objekte können nicht gedruckt werden, wenn von ASP aufgerufen wird

Dieser Artikel hilft Ihnen, das Problem zu beheben, das ein COM-Objekt die Ausgabe an einen Drucker sendet, schlägt fehl, wenn von Active Server Pages aufgerufen wird.

Originalproduktversion: Active Server Pages
Ursprüngliche KB-Nummer: 184291

Problembeschreibung

Ein COM-Objekt, das die Ausgabe an einen Drucker sendet, schlägt fehl, wenn sie von Active Server Pages (ASP) aufgerufen wird, aber ordnungsgemäß funktioniert, wenn sie von einer interaktiven Anwendung aufgerufen wird. Dieses COM-Objekt kann entweder ein kommerzielles Produkt wie eine Microsoft Office-App lizenzierung oder ein benutzerdefiniertes Drittanbieterobjekt sein. Eine häufige Fehlermeldung lautet "ClassName-Fehler '800a01e2' Druckerfehler".

Ursache

Die Standard-APIs, die die meisten Objekte zum Drucken verwenden, sind von Registrierungseinträgen abhängig, die sich in HKEY_CURRENT_USER befinden. Diese Registrierungsstruktur ist dynamisch. Je nachdem, unter welchem Benutzerkontext der Prozess ausgeführt wird, werden unterschiedliche Informationen in diese Struktur geladen. ASP-Seiten werden unter IIS ausgeführt, die als SYSTEM-Konto ausgeführt wird. Wenn Sie eine Instanz eines COM-Objekts in Ihrem ASP-Code erstellen, wird es standardmäßig auch als SYSTEM-Konto ausgeführt. Standardmäßig ist für das SYSTEM-Konto keine Drucker in der Registrierung eingerichtet.

Lösung

Sie können Drucker für das SYSTEM-Konto einrichten, um dieses Problem zu beheben. Führen Sie die folgenden Schritte aus, um Drucker für das SYSTEM-Konto einzurichten:

Warnung

Für diese Methode müssen Sie die Registrierung mithilfe des Registrierungs-Editors ändern. Die Verwendung des Registrierungs-Editors kann schwerwiegende, systemweite Probleme verursachen, die möglicherweise erfordern, dass Sie Windows neu installieren müssen, um sie zu beheben. Microsoft kann nicht garantieren, dass probleme, die sich aus der Verwendung des Registrierungs-Editors ergeben, gelöst werden können. Verwenden Sie dieses Tool auf eigene Gefahr.

  1. Stellen Sie sicher, dass der Benutzer, bei dem Sie aktuell auf dem Server angemeldet sind, die gewünschten Drucker installiert hat.

  2. Starten Sie den Registrierungs-Editor (Regedit.exe).

  3. Wählen Sie den folgenden Schlüssel aus:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices

  4. Wählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.

  5. Geben Sie im Textfeld "Dateiname" "c:\Devices.reg" ein.

  6. Wählen Sie den folgenden Schlüssel aus:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts

  7. Wählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.

  8. Geben Sie im Textfeld "Dateiname" "c:\PrinterPorts.reg" ein.

  9. Wählen Sie den folgenden Schlüssel aus:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

  10. Wählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.

  11. Geben Sie im Textfeld "Dateiname" "c:\Windows.reg" ein.

  12. Wählen Sie auf der Schaltfläche "Start" die Option "Ausführen" aus. Öffnen Sie Devices.reg im Editor, indem Sie editor-Devices.reg im Dialogfeld "Ausführen " eingeben.

  13. Ersetzen Sie den Text HKEY_CURRENT_USER durch HKEY_USERS\.DEFAULT.

  14. Speichern Sie die Datei. Importieren Sie sie dann in die Registrierung, indem Sie im Windows-Explorer auf die Datei doppelklicken.

  15. Wiederholen Sie die Schritte 13 bis 15 für PrinterPorts.reg und Windows.reg.

Notiz

Diese Schritte funktionieren nur für lokale Drucker.

Führen Sie die folgenden Schritte aus, um IIS zum Aufzählen der Netzwerkdrucker mithilfe des SYSTEM-Kontos zu aktivieren.

Notiz

Wenn der Prozess unter dem Netzwerkdienstkonto ausgeführt wird, sind explizite Berechtigungen für die neu erstellte Registrierung erforderlich.

  1. Stellen Sie sicher, dass Sie derzeit als Benutzer angemeldet sind, der die gewünschten Netzwerkdrucker installiert hat.

  2. Starten Sie den Registrierungs-Editor.

  3. Wählen Sie den folgenden Schlüssel aus:

    HKEY_CURRENT_USER\Printers\Connections

  4. Wählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.

  5. Geben Sie im Feld "Dateiname" "c:\printconns.reg" ein.

  6. Um die printconns.reg Datei im Editor zu öffnen, wählen Sie "Start" aus, wählen Sie "Ausführen" aus, geben Sie "Editor" printconns.reg in das Feld "Öffnen" ein, und wählen Sie dann "OK" aus.

  7. Ersetzen Sie den Text HKEY_CURRENT_USER durch den Text HKEY_USERS\.DEFAULT.

  8. Speichern Sie die Datei.

  9. Um die Datei in die Registrierung zu importieren, doppelklicken Sie im Windows-Explorer auf die Datei.

  10. Starten Sie den Druckspoolerdienst neu.