2016-07-19 17 views
0

Mein Webdienst verwendet C# zum Drucken einer Rechnung vom Serverdrucker. Dieser Service funktioniert gut, wenn im Debug-Modus genannt, aber es auf die IIS-Position und Ausführung des Projekts von Web-Explorer, erhalte ich diesen Fehler nach dem Senden:Fehler beim Drucken auf einem Server mit Webdienst

No printers are installed.

System.Drawing.Printing.PrinterSettings.GetHdevmodeInternal(String printer) at System.Drawing.Printing.PrinterSettings.GetHdevmodeInternal() at System.Drawing.Printing.PrinterSettings.GetHdevmode(PageSettings pageSettings) at CrystalDecisions.CrystalReports.Engine.PrintOptions.CopyTo(PrinterSettings printer, PageSettings page)

Was ist das Problem? Derselbe Computer funktioniert im Debug-Modus, aber nicht im Live-Modus.

Dieser Abschnitt des Codes wirft die Ausnahme:

reportClass.PrintOptions.PrinterName = clsDeclaration.defultPrinter1; 
reportClass.PrintToPrinter(numberOfCopies, true, 1, 1); 
+1

die Treibereinrichtung Drucker Installieren zuerst auf Ihrem Server, auf dem das System läuft .. –

+0

ja ich die Druckertreiber bereits auf dem Server-PC installieren bin und wie ich nur sagen, es funktioniert im Debug-Modus , damit der Fahrer gut funktioniert. –

+0

Überprüfen Sie Server .net Framework, wenn passend zu Ihrem Projekt-Framework überprüfen Sie auch die Crystal-Bericht Laufzeit, wenn es 32bit oder 64 Bit installiert ist. Überprüfen Sie auch den Drucker, wenn er mit Ihrem Server-PC verbunden ist oder prüfen Sie das Drucker-Netzwerk. –

Antwort

0

habe ich die Lösung

Der Grund, es funktioniert, während auf der Entwicklungsmaschine ist, dass die Entwicklung Web-Service wird im Rahmen des Windows ausgeführt wird Login, der wahrscheinlich die richtigen Drucker eingerichtet hat. Auf dem Server wird es wahrscheinlich als Netzwerkdienst oder als lokales Systemkonto ausgeführt.

Die Lösung besteht darin, die Drucker für den Systemaccount mithilfe der folgenden Anweisungen einzurichten. Sie müssen außerdem die Identität des Anwendungspools ändern, den Ihre App verwendet, um die LocalSystem-Identität zu verwenden.

enter image description here