Umleiten von stdout+stderr auf eine C# - Windows-Dienst
Ich geschrieben habe, einen Windows-Dienst in C# unter Verwendung des ServiceBase
Helfer. Während der Ausführung einige Verfahren, die auf einer externen nativen DLL aufgerufen werden. Dummerweise sind diese Verfahren, schreiben nach stdout und/oder stderr in eine unkontrollierte Art und Weise, da keine Quellen angegeben sind, dieser DLL.
Ist es möglich, die Umleitung dieser Ausgaben aus der C# - service, um eine log-Datei?
ist es ab bis die DLL als Prozess? oder einfach den Verweis auf die DLL?
Sie können nicht starten Sie eine DLL als Prozess. Dies ist ein häufiges Problem.
Sie können nicht starten Sie eine DLL als Prozess. Dies ist ein häufiges Problem.
InformationsquelleAutor Herchu | 2009-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies über PInvoke zu SetStdHandle:
Ich habe mich verändert die Linie handle = filestream.Handler; von Griff = filestream.SafeFileHandle.DangerousGetHandle(); weil filestream.Hf ist veraltet.
Welcher Weise zu verwenden, ohne dass ein FileStream? (z.B. MemoryStream oder ähnliches)?
Bitte siehe meine Antwort auf einen ähnlichen Kommentar zu meine neue Frage: stackoverflow.com/questions/8555002/...
du hast bewusst die "Gefährlich" in DangerousGetHandle? Es ist dort aus einem Grund: msdn.microsoft.com/en-us/library/...
InformationsquelleAutor Reed Copsey
Check-out die Console.Darlegen Methode.
Es ermöglicht Ihnen das umleiten der Konsole die Ausgabe an einen TextWriter.
Reed, so was hängt das ab?
InformationsquelleAutor Jay Riggs