Rediriger stdout+stderr sur un Windows en C# service
J'ai écrit un service Windows en C# à l'aide de la ServiceBase
helper. Au cours de son exécution de certaines procédures externes d'origine DLL sont appelés. Fâcheusement, ces procédures d'écrire sur la sortie standard et/ou stderr dans un incontrôlée de la manière qu'aucune des sources sont donnés pour cette DLL.
Est-il possible de rediriger les résultats de la C# service à un fichier journal?
c'est le démarrage de la DLL en tant que Processus? ou tout simplement de référencer la DLL?
Vous ne pouvez pas démarrer une DLL en tant que processus. C'est une problématique commune.
Vous ne pouvez pas démarrer une DLL en tant que processus. C'est une problématique commune.
OriginalL'auteur Herchu | 2009-10-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire via PInvoke à SetStdHandle:
J'ai changé la poignée en ligne = filestream.Gestionnaire; par poignée = filestream.SafeFileHandle.DangerousGetHandle(); filestream.Gestionnaire est obsolète.
De toute façon de l'utiliser sans un FileStream? (c'est à dire MemoryStream ou similaire)?
Veuillez voir ma réponse à un commentaire similaire sur ma nouvelle question: stackoverflow.com/questions/8555002/...
vous avez fait réaliser le "Dangereux" dans DangerousGetHandle? Il est là pour une raison: msdn.microsoft.com/en-us/library/...
OriginalL'auteur Reed Copsey
Découvrez la Console.Sera méthode.
Il va vous permettre de rediriger la sortie de la console à un TextWriter.
Reed, donc, de quoi cela dépend-il?
OriginalL'auteur Jay Riggs