Отладка службы Windows - PullRequest
       20

Отладка службы Windows

0 голосов
/ 07 декабря 2010

Я создал одну службу Windows, которая отправляет уведомления по электронной почте пользователям (список получен из базы данных) каждые 2 минуты. Я хочу проверить, что все работает нормально в веб-сервисе и, следовательно, я хочу отладить сервис. Служба устанавливается в SMC (services.msc) после завершения настройки сервера приложения.

Мой вопрос: как отладить службу Windows?

Я не могу посмотреть услугу от

  1. Диспетчер задач
  2. Присоединить к процессу

Я пробовал по следующим ссылкам

Я также дал права на отладку с http://msdn.microsoft.com/en-us/library/aa291232%28VS.71%29.aspx#vxtskdebuggerpermissionsdebuggingasystemservice

Дайте мне знать, требуется ли какой-либо ввод.

Спасибо!

РЕДАКТИРОВАТЬ: @ maycil

Я написал ваш If(!Debug) код, но я думаю, что есть некоторая проблема, так как я не вижу правильный цвет Visual Studio.

alt text

Ответы [ 2 ]

2 голосов
/ 07 декабря 2010

В дополнение к ответу maycil вы можете использовать Environment.UserInteractive, чтобы проверить, работает ли служба с подключенной консолью.Таким образом, он работает как для службы, так и для отладки как консольное приложение.

static void Main( string[] args )
{
    if( !Environment.UserInteractive )
    {
        var servicesToRun = new ServiceBase[] {new Service1Component()};
        ServiceBase.Run( servicesToRun );
    }
    else
    {
        var services = new Service1Component();
        services.Start()
        Console.WriteLine( "Press return to exit" );
        Console.ReadLine();
        services.Stop();
    }
}
2 голосов
/ 07 декабря 2010
static void Main()
{
#if (!DEBUG)


            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] { new Service1Component() };
            ServiceBase.Run(ServicesToRun);


#else
            Service1Component s = new Service1Component();
            s.StartProcess();
#endif
}

попробуйте этот код в Service1Companent.cs

...