2015-04-05 7 views
0

Я хочу создать службу Windows, и для этого я также создаю программу и программу установки.Моя служба Windows C# .net не выполняет свой код запуска

Он был установлен хорошо, и я был готов начать свой следующий ход, но после запуска службы он ничего не показывает.

Я использовал эту ссылку.

http://tech.pro/tutorial/895/creating-a-simple-windows-service-in-csharp

Это мой Program.cs файл.

namespace WindowsService 
{ 
    class Program : ServiceBase 
    { 
     static void Main(string[] args) 
     { 
      ServiceBase.Run(new Program()); 
     } 
     public Program() 
     { 
      this.ServiceName = "Battery Service"; 
     } 

     protected override void OnStart(string[] args) 
     { 
      base.OnStart(args); 
      Console.WriteLine("Hello World"); 

      Console.ReadLine(); 
     } 

     protected override void OnStop() 
     { 
      base.OnStop(); 


     } 
    } 
} 

И следующий один мой файл инсталлятора, WindowsServiceInstaller.cs

namespace WindowsService 
{ 
    [RunInstaller(true)] 
    public class WindowsServiceInstaller:Installer 
    { 
     public WindowsServiceInstaller() 
     { 
      var processInstaller = new ServiceProcessInstaller(); 
      var serviceInstaller = new ServiceInstaller(); 

      //set the privileges 
      processInstaller.Account = ServiceAccount.LocalSystem; 

      serviceInstaller.DisplayName = "Battery Service"; 
      serviceInstaller.StartType = ServiceStartMode.Manual; 

      //must be the same as what was set in Program's constructor 
      serviceInstaller.ServiceName = "Battery Service"; 

      this.Installers.Add(processInstaller); 
      this.Installers.Add(serviceInstaller); 
     } 
    } 
} 
  1. служба установлена ​​правильно в соответствии с приведенной выше ссылке и.
  2. Служба появляется в Администрировании/Сервисы и я начал ее.
  3. Он также отображается в диспетчере задач. Хотя, не выполняя код.

Помогите мне.

+2

Откуда вы знаете, что это не выполняется? Я сомневаюсь, что для служб есть видимый stdin/stdout. Вы пробовали что-то вроде записи в файл? –

+0

Возможный дубликат [Console.WriteLine() в службе Windows?] (Http://stackoverflow.com/questions/8792978/console-writeline-inside-a-windows-service) –

+1

Google «сеанс 0 изоляции», чтобы узнать почему службы не могут отображать информацию на вашем рабочем столе. Используйте файл журнала. –

ответ

0

Нет интерактивной консоли для службы Windows. Попробуйте вместо этого использовать Debug.WriteLine и мониторинг с помощью приложения, такого как DebugView

0

Посмотрите эту статью с MSDN How to: Debug Windows Service Applications.

Вы в основном должны создать службу в конфигурации отладки, запустить ее как службу, а затем присоединить отладчик VS к процессу обслуживания. Затем вы сможете отлаживать его в обычном режиме.

Поскольку вам нужно отладить службу при ее запуске, статья также дает советы о том, как вы можете отсрочить выполнение OnStart(), чтобы дать вам время для подключения отладчика.

+0

Я сделал это. Он не входит в метод OnStart() –

Смежные вопросы