Текущий архив: 2002.12.12;
Скачать: CL | DM;
Вниз
Service Найти похожие ветки
← →
Yogi (2002-11-29 22:09) [0]Приветствую! Очень просил бы вам проконсульировать меня по поводу приложений-сервисов.
В первый раз сталкиваюсь с программированием сервисов. Данный сервис выполняет роль клиента в системе клиент-сервер.
Действовал я так: Создать>Приложение сервис. Далее добавил туда CientSocket и обрабатывал событие OnRead для него. Все работает нормально, клиент получает команды сервера, адекватно :) на нах реагироет. Но так продолжается секунд 10, после чего сервис "вылетает", т.е. закрывается без каких-любо сообщений об ошибке.
Пробовал запускать сервис с параметром /install, но в этом случае происходят еще более странные вещи: клиент конектится с сервером (те событие OnConnect наступает), но при попытке послать сообщение, сервер кричит, что ни одного клиента нет...
Помогите разобраться что к чему, пожалуйста!
← →
Cobalt © (2002-11-30 00:44) [1]Очень мало информации. А еще посмотрите, в статьях видел что-то о сервисах. Попробуйте запустить из-под отладчика.
← →
Yogi (2002-12-02 02:35) [2]Тема такая. Описанная выше ситуация складывается какой бы сервис я не создал. Самый простейший пример - создаю сервис, в него добавляю таймер, который каждые 10 сек. выдает messagebox. Заускаю. Через ~12 сек. сервис вылетает. Если при помощи ключа /install я устанавливаю его и потом запускаю через "Управление компьютером" вкладка "Службы", то никаких сообщений не появляется вовсе, т.е. он не работает. И так с любым написанным мною сервисом...
← →
Dmitry Rogov (2002-12-02 12:00) [3]На service.execute должно быть что-то типа:
while not Terminated do Service.ProcessRequests(true);
Если не получится пиши, объясню подробнее.
← →
Dmitry Rogov (2002-12-02 12:02) [4]На Service.Execute должно быть что-то типа:
while not Terminated do YourThread.ProcessRequests(true);
Не получится, пиши, попробую объяснить подробнее.
← →
asmith (2002-12-02 13:01) [5]Если из сервера вызывается messagebox, для него обязательно нужно установить флажок "Allow service to interact with desktop"
← →
Yogi (2002-12-02 23:22) [6]Всем спасибо! Флажок "Разрешить взаимодействие с рабочим столом" реально помог! А объяснение тому, что сервис вылетает из-под дебагера я все-таки нашел в справке: You must launch the service quickly (within 15-30 seconds of application startup) because the application will terminate if no service is launched
← →
Александр Спелицин © (2002-12-03 10:40) [7]> А объяснение тому, что сервис вылетает из-под дебагера я все-таки нашел в справке...
Ну вот видите, и справку бывает полезно почитать :o)))!
А что касается написания сервисов, то настоятельно рекомендую Вам всю поднаготную их написания. Конечно, об этом прекрасно расписано в MSDN, но я советую Вам прочитать "Программирование серверных приложений для Microsoft Windows 2000" Рихтера.
Ну а если приведенный там пример для Вас окажется слишком трудным, то найдите в примерах к MSDN есть простенький пример написания сервиса. Ищите файлы service.h, service.c, simple.c.
В коментариях этих файлов содержится почти вся необходимая Вам информация.
Страницы: 1 вся ветка
Текущий архив: 2002.12.12;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.016 c