Ich habe einige C # -Apps geschrieben, die über den Windows-Taskplaner ausgeführt werden. Sie werden erfolgreich ausgeführt (wie aus den Protokolldateien hervorgeht, die sie schreiben), aber der Windows-Taskplaner zeigt an, dass sie ein Ergebnis der letzten Ausführung von zurückgeben 0xE0434352
. Muss ich in meiner C # -Anwendung etwas tun, damit ein Erfolgscode an den Windows-Taskplaner zurückgegeben wird?
c#
.net
scheduled-tasks
task
Kynrek
quelle
quelle
Antworten:
Eine andere Möglichkeit besteht darin, einfach das Anwendungsprotokoll zu verwenden, auf das über die Windows-Ereignisanzeige zugegriffen werden kann. Der .NET-Fehler wird im Anwendungsprotokoll aufgezeichnet.
Sie können diese Ereignisse hier sehen:
Ereignisanzeige (lokal)> Windows-Protokolle> Anwendung
quelle
.NET Runtime
Wenn Sie einen Job in neuen Fenstern einrichten, haben Sie zwei Felder " Programm / Skript " und " Start in (optional) ". Geben Sie den Programmnamen an die erste und den Programmort an die zweite Stelle. Wenn Sie dies nicht tun und Ihr Programm nicht im Verzeichnis mit exe startet, findet es keine Dateien, die sich darin befinden.
quelle
Hans Passant richtig war, habe ich einen Handler für AppDomain.CurrentDomain.UnhandledException wie hier beschrieben http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception(v=vs.71).aspx ich war in der Lage, die aufgetretene Ausnahme zu finden und zu korrigieren.
quelle
Ich habe auf ein zugeordnetes Laufwerk verwiesen und festgestellt, dass die zugeordneten Laufwerke nicht immer für das Benutzerkonto verfügbar sind, auf dem die geplante Aufgabe ausgeführt wird. Daher habe ich
\\IPADDRESS
stattdessen verwendetMAPDRIVELETTER:
und bin betriebsbereit.quelle
Falls es anderen hilft, habe ich diesen Fehler erhalten, als der Dienst, auf dem die Aufgabe ausgeführt wurde, keine Schreibberechtigung für den ausführbaren Speicherort hatte. Es wurde versucht, dort eine Protokolldatei zu schreiben.
quelle
Ich hatte dieses Problem und es lag an der .Net-Framework-Version. Ich hatte den Build auf Framework 4.0 aktualisiert, aber dies schien einige Kommunikations-DLLs zu beeinflussen, die von der Anwendung verwendet wurden. Ich habe auf Framework 3.5 zurückgegriffen und es hat gut funktioniert.
quelle
Ich habe den gleichen Fehler erhalten, aber ich habe ihn behoben, indem ich den Dateilesepfad von "ConfigFile.xml" in AppDomain.CurrentDomain.BaseDirectory.ToString () + "ConfigFile.xml" geändert habe.
In meinem Fall ist dieser Fehler auf einen Dateipfadfehler zurückzuführen, da der Task-Manager das Programm von "System32" als Anfangspfad startet, jedoch von dem Ordner, den wir dachten.
quelle
Ich habe dieselbe Nachrichtenmeldung in dotNet Core 2.2 mit MVC 5 erhalten, es wurde jedoch nichts in der Windows-Ereignisanzeige protokolliert.
Ich stellte fest, dass ich das Project sdk von
Microsoft.NET.Sdk.Web
in geändert hatteMicrosoft.NET.Sdk.Razor
(in derprojects.csproj
Datei zu sehen). Ich habe das wieder geändert und es hat gut funktioniert :)quelle
In meinem Fall lag es daran, dass ich Nachrichtenboxen hatte. Nachdem ich diesen Code auskommentiert hatte, fing er an zu funktionieren. Ich erinnerte mich, dass dies ein Problem sein könnte, als ich mir das in diesem Thread vorgeschlagene Ereignisprotokoll ansah. Vielen Dank an alle!
quelle
Ich habe dieses Problem beim Arbeiten mit COM-Objekten festgestellt. Unter bestimmten Umständen (mein Fehler) habe ich einen externen EXE-Prozess zerstört. In einem parallelen Thread hat eine Variable versucht, auf die com-Schnittstelle app.method zuzugreifen, und es ist ein Absturz auf COM-Ebene aufgetreten. Der Taskplaner hat dies bemerkt und die App heruntergefahren. Wenn Sie die App jedoch in der Konsole ausführen und die Ausnahme nicht behandeln, funktioniert die App weiterhin ...
Bitte beachten Sie, dass Sie nicht verwalteten Code oder externe Objekte (AD, Socket, COM ...) überwachen müssen!
quelle
In meinem Fall handelt es sich um ein Berechtigungsproblem. Der Taskplaner verfügt über einen Benutzer, der auf dem Server, auf dem die Datenbank vorhanden ist, keine Berechtigung hat.
quelle