如何将C#控制台应用程序附加到正在运行的Windows服务?

dot*_*der 3 c#

我有一个Windows服务,它生成日志,因为它执行一些.我也会console.writeline调用我写入日志文件的每条日志消息.但由于它的Windows服务,console.write行不可见.

我想编写一个可以附加到我的服务(已经运行)的C#控制台应用程序,它可以显示console.writeline进程(我的Windows服务)正在生成的所有消息.

更新:日志量非常频繁(每分钟50条消息),我宁愿不想为此事件日志拥挤.使用cosole窗口有助于查看日志并在方便时退出

Dir*_*mar 6

从服务中显示窗口并不是一个好主意,因为您必须找到"正确"的会话(Windows允许多个用户登录),并且还要求服务可以访问用户的桌面.

相反,将Console.WriteLine调用更改为最简单Trace.WriteLine.然后,您可以附加到这些跟踪消息,例如使用SysIntenal的DebugView.


wef*_*fwe 5

我认为你很难将控制台连接到现有服务.两个简单的选择

  1. 写入Windows应用程序日志
  2. 写入文本文件,然后可以使用wintail或类似文件打开

重新更新 - 数字2将是最好的.


dot*_*der 1

我使用 cygwin 跟踪由 log4net 创建的日志文件,这似乎对我有用。

感谢您的帮助!