Seite 1 von 1

Py Script aus C# Service

Verfasst: Donnerstag 1. Februar 2018, 20:29
von stony007_de
Hi

Ich hab einen C# Service welcher unter dem lokalen System läuft.
Dieser ruft die App “c:\python\python.exe” und als Argument “c:\demo\skript.py”.
im
Mein Problem: es passiert nix!!!
Im skript werden DB Aktionen durchgeführt. Starte ich das Skript per hand läufst, starte ich aus deiner c# Standard App gehts auch... ???

Ersetzte ich das Skript.py durch ein Test.py in welcher einfach ein Textfile geschrieben wird, geht das (mit vollständig angegeben Ziel Pfad) auch.
Würd ich nicht den gesamten Pfad angeben, würd das textfile nicht im Verzeichnis des Test.py Skripts sondern im c:\Windows\wow64. Wahrscheinlich da der Systemuser den Prozess startet.

Hat jemand eine Idee?

Bin für alles offen.

Vg
Stony007_de

Re: Py Script aus C# Service

Verfasst: Donnerstag 1. Februar 2018, 20:44
von Sirius3
@stony007_de: wie startest Du das Skript? Was tut das Skript? Gibst Du die Fehler- und Standardausgabe auch aus? Um den Fehler einzugrenzen hilft es dann, Logausgaben einzubauen.

Re: Py Script aus C# Service

Verfasst: Freitag 2. Februar 2018, 05:52
von stony007_de
Moin

Nix, er wirft nix.. Da das unter dem SystemUser läuft, kommt auch mehr Meldung oder cmd Box hoch.

Den Aufruf der python.exe als auch des Skripts mach ich über einen Prozess um c# welcher die absoluten pfade aufruft.

Re: Py Script aus C# Service

Verfasst: Freitag 2. Februar 2018, 08:10
von Sirius3
stony007_de hat geschrieben:Da das unter dem SystemUser läuft, kommt auch mehr Meldung oder cmd Box hoch.
Kannst Du das nochmal anders ausdrücken, ich versteh es nicht.

Du solltest Dein C#-Programm in einer Konsole ausführen, und dafür sorgen, dass auch Python-Ausgaben dort landen. Dann kannst Du mit Debug-Meldungen auch den Fehler besser eingrenzen.

Re: Py Script aus C# Service

Verfasst: Freitag 2. Februar 2018, 18:44
von stony007_de
Einen Windows Service in eine Consolen Anwendung packen ist schlichtweg nicht möglich.
Aber ich hab das Problem gefunden. Der Service läuft, wie gesagt als System User somit auch mit dem Working Dir C:\Windows\System ... Da findet er natürlich keine Imports. ;-)
Im C# Prozess hab ich das WorkingDirectory manuell gesetzt und voila...es läuft!!!

Danke für die Tipps..