Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
6-36311
Hirara
2002-10-09 00:02
2002.12.12
Опять про ServerSocket@ClientSocket


1-36247
Dracula
2002-12-02 09:39
2002.12.12
Как получить дату...?


4-36472
izhalex
2002-10-14 13:56
2002.12.12
SetSecurityInfo в windows nt


1-36289
RDA
2002-11-30 10:48
2002.12.12
ActivX - F1Book


4-36477
V0land
2002-10-29 16:11
2002.12.12
Как слинковать DLL и EXE в один экзешник?