2008-08-31 7 views
0

Ich habe ein Konsolenprogramm in C# geschrieben, das ich zum Senden von Faxen verwende. Wenn ich das Programm in Visual Studio durchtrete, funktioniert es gut. Wenn ich auf das Programm in Windows Explorer doppelklicke, funktioniert es gut. Wenn ich einen geplanten Task Windows einrichten, um das Programm auszuführen, schlägt es damit in dem Ereignisprotokoll fehl.C# -Konsolenprogramm kann kein Fax senden, wenn es als geplante Aufgabe ausgeführt wird

EventType clr20r3, P1 consolefaxtest.exe, P2 1.0.0.0, 
P3 48bb146b, P4 consolefaxtest, P5 1.0.0.0, P6 48bb146b, 
P7 1, P8 80, P9 system.io.filenotfoundexception, 
P10 NIL. 

Ich schrieb eine Batchdatei, um das Faxprogramm auszuführen, und es schlägt mit dieser Nachricht fehl.

Unhandled Exception: System.IO.FileNotFoundException: Operation failed. 
at FAXCOMEXLib.FaxDocumentClass.ConnectedSubmit(FaxServer pFaxServer) 

Kann mir jemand dieses Verhalten erklären?

+0

Das operative Wort in Ihrer Frage ist "Ich". Wenn _I_ durch ... geht, funktioniert es. Wenn _I_ Doppelklick ... es funktioniert. Wenn _Windows_ läuft ... funktioniert es nicht. – bzlm

Antwort

5

Ich kann es nicht erklären - aber ich habe ein paar Ideen.

Die meiste Zeit, wenn ein Programm gut funktioniert, testet es, und nicht bei der Planung - Sicherheit ist der Fall. In welchem ​​Kontext ist Ihr Programm geplant? Vielleicht wird diesem Benutzer nicht genügend Zugriff gewährt.

Ist die Ressource, die Ihr Programm versucht, auf ein Netzlaufwerk zuzugreifen, das der Benutzer, der die geplante Aufgabe ausführt, einfach nicht erhalten?

0

Sie sicher, dass Sie korrekte Arbeitsverzeichnis für Ihre Aufgabe

0

Ist die geplante Aufgabe auf demselben Computer setzen auf Sie zu entwickeln, oder ist es auf einem dedizierten Server OLP? Es ist ziemlich üblich, dass sich Pfade ändern, wenn Sie die Umgebung ändern, also ist der Pfad zu dem Dokument, das Sie senden möchten, dasselbe?

0

Ich stimme MartinNH zu.

Viele dieser Probleme rühren von der Tatsache her, dass Sie sich während der Anmeldung als Administrator in Visual Studio entwickeln (das Programm verfügt also über alle erforderlichen Berechtigungen für die Ausführung), Sie jedoch als Benutzer mit geringeren Berechtigungen bereitstellen.

Versuchen Sie, die Privilegien des Taskplaner-Benutzers höher zu setzen.

0

Wenn Sie in Vista laufen, stellen Sie möglicherweise fest, dass die Höhe im Weg ist. Möglicherweise müssen Sie sicherstellen, dass Ihre Aufgabe als ordnungsgemäßer Administrator und nicht als eingeschränkter Benutzer ausgeführt wird.

0

Wenn Sie eine Zeitplanaufgabe ausführen, können Sie sie unter einem Benutzer ausführen lassen. Stellen Sie sicher, dass der Benutzer, der die Zeitplanaufgabe ausführt, die gleichen Rechte für die Faxressource hat wie Sie. Aus diesem Grund können Sie es ausführen, wenn Sie in Windows Explorer doppelklicken.

Verwandte Themen