COM-Objekte können nicht gedruckt werden, wenn sie von ASP aufgerufen werden
Dieser Artikel hilft Ihnen bei der Behebung des Problems, dass ein COM-Objekt die Ausgabe an einen Drucker sendet, wenn es von Active Server Pages aufgerufen wird.
Ursprüngliche Produktversion: Active Server Pages
Ursprüngliche KB-Nummer: 184291
Problembeschreibung
Ein COM-Objekt, das eine Ausgabe an einen Drucker sendet, schlägt fehl, wenn es von Active Server Pages (ASP) aufgerufen wird, funktioniert jedoch ordnungsgemäß, wenn es von einer interaktiven Anwendung aufgerufen wird. Bei diesem COM-Objekt kann es sich entweder um ein kommerzielles Produkt wie eine Microsoft Office Anwendung oder um ein benutzerdefiniertes Drittanbieterobjekt handeln. Eine häufige Fehlermeldung lautet "ClassName error '800a01e2' Printer error."
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, das 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 sind 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 falsche Verwendung des Registrierungs-Editors kann zu schwerwiegenden systemweiten Problemen führen, bei denen Sie möglicherweise Windows neu installieren müssen, um sie zu korrigieren. Microsoft kann nicht garantieren, dass alle Probleme, die sich aus der Verwendung des Registrierungs-Editors ergeben, behoben werden können. Verwenden Sie dieses Tool auf eigenes Risiko.
Stellen Sie sicher, dass für den Benutzer, bei dem Sie derzeit auf dem Server angemeldet sind, die gewünschten Drucker installiert sind.
Starten Sie den Registrierungs-Editor (Regedit.exe).
Wählen Sie den folgenden Schlüssel aus:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\DevicesWählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.
Geben Sie im Textfeld Dateiname den Namen c:\Devices.reg ein.
Wählen Sie den folgenden Schlüssel aus:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPortsWählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.
Geben Sie im Textfeld Dateiname den Namen c:\PrinterPorts.reg ein.
Wählen Sie den folgenden Schlüssel aus:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\WindowsWählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.
Geben Sie im Textfeld Dateiname den Namen c:\Windows.reg ein.
Wählen Sie auf der Schaltfläche "Start" die Option "Ausführen" aus. Öffnen Sie Devices.reg in Editor, indem Sie im Dialogfeld Ausführen Editor Devices.reg eingeben.
Ersetzen Sie den Text
HKEY_CURRENT_USERmitHKEY_USERS\.DEFAULT.Speichern Sie die Datei. Importieren Sie sie dann in die Registrierung, indem Sie im Windows Explorer auf die Datei doppelklicken.
Wiederholen Sie die Schritte 13 bis 15 für PrinterPorts.reg und Windows.reg.
Hinweis
Diese Schritte funktionieren nur für lokale Drucker.
Führen Sie die folgenden Schritte aus, um IIS das Aufzählen der Netzwerkdrucker mithilfe des SYSTEM-Kontos zu ermöglichen.
Hinweis
Wenn der Prozess unter dem Netzwerkdienstkonto ausgeführt wird, sind explizite Berechtigungen für die neu erstellte Registrierung erforderlich.
Stellen Sie sicher, dass Sie derzeit als Benutzer, auf dem die gewünschten Netzwerkdrucker installiert sind, beim Server angemeldet sind.
Starten Sie den Registrierungs-Editor.
Wählen Sie den folgenden Schlüssel aus:
HKEY_CURRENT_USER\Printers\ConnectionsWählen Sie im Menü "Registrierung" die Option "Registrierungsdatei exportieren" aus.
Geben Sie im Feld "Dateiname" den Namen c:\printconns.reg ein.
Um die Datei "printconns.reg" in Editor zu öffnen, wählen Sie "Start", "Ausführen" aus, geben Sie Editor "printconns.reg" in das Feld "Öffnen" ein, und wählen Sie dann "OK" aus.
Ersetzen Sie den Text
HKEY_CURRENT_USERdurch denHKEY_USERS\.DEFAULTText.Speichern Sie die Datei.
Doppelklicken Sie zum Importieren der Datei in die Registrierung im Windows Explorer auf die Datei.
Starten Sie den Druckspoolerdienst neu.