Windows Service Application C#

Рейтинг: 2Ответов: 2Опубликовано: 07.05.2011

Здравствуйте, уважаемые программисты!

Столкнулся со следующей проблемой: В С# я новичек, только изучаю. Создаю Service приложение.

Цель проги: при запуске службы выводить значек в области уведомлений с оповещение что прога запустилась.

В дизайнере кидаю notifyIcon. В коде пишу:

protected override void OnStart(string[] args)
    {
        eventLog1.WriteEntry("In OnStart");

        notifyIcon1.BalloonTipIcon  = ToolTipIcon.Info;
        notifyIcon1.BalloonTipTitle = "Remote ADSL Reboot";
        notifyIcon1.BalloonTipText  = "Программа запущена! :)";
    }

    protected override void OnStop()
    {
        eventLog1.WriteEntry("In onStop.");

        notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
        notifyIcon1.BalloonTipTitle = "Remote ADSL Reboot";
        notifyIcon1.BalloonTipText = "Программа остановлена! :(";
    }

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

Если руками запустить exe файл проги, то значок появляется в области уведомлений, но менее чем через минуту вылетает с ошибкой:

Cannot start service from command line or a debugger. A windows Service mus be installed (using installutil.exe) and then started with the ServerExplorer, Windows Service Administrative tool or NET START command.

Хотя сервис запущен.

Подскажите, что не так делаю?

Ответы

▲ 1Принят

Службы Windows не имеют пользовательского интерфейса и работают в отдельном сеансе (работают в отдельной оконной станции). http://msdn.microsoft.com/en-us/library/d56de412(v=vs.80).aspx В данном случае лучше сделать отдельное приложение с GUI.

▲ 1

Службу Windows нельзя запускать непосредственно как приложение - только через диспетчер служб. Попробуйте указать в настройках своей службы галочку "Разрешить службе взаимодействовать с рабочим столом".