Нужно предложение по замене Windows Service на невидимое приложение WinForm - PullRequest
1 голос
/ 27 января 2011

Мне нужно фоновое приложение для поддержки моего клиентского приложения, которое всегда должно запускаться на клиентском компьютере независимо от того, запущено основное клиентское приложение или нет.

Служба Windows была моим первым выбором, но проблемы, с которыми я столкнулся со Службой Windows, были: простота управления службой Windows через основное клиентское приложение, выпуск и установка исправлений для службы Windows и устранение неполадок, если служба Windows не запускается.

Итак, я начал искать альтернативы службе Windows и обнаружил, что приложение Windows Forms без видимых форм может сделать это для меня. Это невидимое приложение должно запускаться при запуске системы и постоянно работать, выполняя всю работу, которую выполняет служба Windows. Но прежде чем углубляться в разработку, я хочу изучить все плюсы и минусы этого подхода.

Есть предложения / комментарии по этому подходу?

Ответы [ 2 ]

1 голос
/ 27 января 2011

Это невозможно. Приложения пользовательского режима должны запускаться пользователем и не будут продолжать работать, когда этот пользователь выходит из системы. В этом и заключается цель события SessionEnding: чтобы вы могли корректно завершить работу приложения, когда пользователь выходит из системы или выключается компьютер. Вы не можете просто запустить что-то при запуске системы и постоянно запускать ее.

Для этого вам нужна служба Windows. Но вы должны знать, что в Windows Vista и более поздних версиях служба не может напрямую взаимодействовать с пользователем. Они запускаются в отдельном процессе и им запрещено отображать свой собственный пользовательский интерфейс. Из вопроса точно не понятно, что именно вам нужно, но это важное ограничение службы Windows, которое стоит рассмотреть. Правильный дизайн действительно не должен этого требовать, но, очевидно, есть много людей, для которых это новое, более безопасное поведение является настоящей неожиданностью. Я объясню это более подробно в соответствующих ответах на этот вопрос и этот другой вопрос .

1 голос
/ 27 января 2011

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

Чтобы разобраться в проблемах развертывания, вы строите свою бизнес-логику в отдельную сборку и вызываете необходимую функцию с помощью службы Windows. Таким образом, вы можете развернуть только измененную сборку.

Приложение Winform с невидимой формой не будет служить цели. НТН

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