Консольный вывод в Windows Service в VS.Net 2008 - PullRequest
1 голос
/ 21 сентября 2011

Я использую Службу Windows, используя C #. Я хочу, чтобы вывод в Консоли говорил Console.WriteLine ("Hello"). Я не могу получить это, хотя я могу успешно написать это, сделать запись в EventLog.

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

        }

Скажем, поэтому я не могу проверить, пишет ли он в Консоль и выполняет ли он указанный ниже код.

Ответы [ 3 ]

5 голосов
/ 21 сентября 2011

Вы, вероятно, имеете в виду Debug.WriteLine не так ли? Если это так, используйте sysinternals средство просмотра отладки для просмотра каждого сообщения отладки, отправленного любым приложением (включая службы)

редактировать: Шаг за шагом

  1. Заменить Console.WriteLine на Debug.WriteLine
  2. Скачать Просмотр отладки
  3. Запустите средство отладки и запустите службу
  4. Debug Viewer покажет вам каждое сообщение, отправленное в Debug. (вы можете фильтровать, чтобы видеть только то, что вас интересует)
  5. Вуаля!
0 голосов
/ 21 сентября 2011

Чтобы увидеть вывод консоли в службе Windows, необходимо настроить службу с помощью «Разрешить службе взаимодействовать с рабочим столом»

Control Panel --> Admin Tools --> Services --> select yours --> (right-click) Properties --> Logon Tab --> Tick "Allow service to interact with Desktop"
0 голосов
/ 21 сентября 2011

У вас нет консольного окна, доступного в службе Windows;вариант, который я бы использовал, состоял бы в том, чтобы использовать каркас журналирования (такой как log4net) для вывода операторов в файл журнала

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...