VS.Net 2008中Windows服务中的控制台输出

时间:2011-09-21 10:42:17

标签: c# windows-services console

我正在使用C#使用Windows服务。我希望控制台中的输出说Console.WriteLine(“Hello”)。我无法得到它,而我能够成功写入它进行eventLog Entry。

  eventLog1.WriteEntry("In OnStart");
        try
        {
            Console.WriteLine("Hello");         
            DBSyncHandler sync = new DBSyncHandler();
            sync.startSync();

        }

因此我说我无法检查它是否正在写入控制台并执行下面提到的代码。

3 个答案:

答案 0 :(得分:5)

你可能意味着Debug.WriteLine不是吗?如果是这样,请使用sysinternals debug viewer来监视任何应用程序(包括服务)发送的每个调试消息

编辑一步一步

  1. Console.WriteLine替换为Debug.WriteLine
  2. 下载debug viewer
  3. 运行调试查看器并启动服务
  4. Debug Viewer将显示发送给Debug的每条消息。 (您可以过滤以仅查看对您有用的内容)
  5. Voila!

答案 1 :(得分:0)

Windows服务中没有可用的控制台窗口;我将使用的选项是使用日志框架(例如log4net)将语句输出到日志文件

答案 2 :(得分:0)

要在Windows服务中查看控制台输出,您需要使用“允许服务与桌面交互”来设置服务

Control Panel --> Admin Tools --> Services --> select yours --> (right-click) Properties --> Logon Tab --> Tick "Allow service to interact with Desktop"