![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Написал службу (на Delphi) На локальном компе всё хорошо работает, но когда перенес её на сервер, начала вырубаться через секунд 15. Служба проста: На форме находится IdTCPServer, слушающий порт Код:
procedure TslGetCoffee.ServiceStart(Sender: TService; var Started: Boolean); begin ... IdTCPServer.DefaultPort:=5190; Try IdTCPServer.Active:=True; Except ... End; end; procedure TslGetCoffee.ServiceExecute(Sender: TService); begin While Not Terminated do begin If Terminated Then Break; Sleep(200); ServiceThread.ProcessRequests(False); End; end; Стартует, но останавливается даже когда нет команд на IdTCPServer Дело наверное не в службе. Наверное что-то мешает службе выполняться на сервере Что можно проверить на сервере? какие настройки? Как определить причину остановки службы? Что посоветуете? Последний раз редактировалось Admin, 20.07.2017 в 20:35. |
#2
|
|||
|
|||
![]() Скореее всего просто где-то возникает эксепшн, который "выбивает" тред, вот служба и заканчивает работу.
|
#3
|
|||
|
|||
![]() Спасибо, посмотрю
Может это важно, Сервер - виртуальный |
#4
|
|||
|
|||
![]() Проблема все-таки - службе !
Служба не понимает команды IdTCPServer (как-будто компонента вообще нет), просто в цикле работает, не реагируя на чтение порта Но на локальной компе все работало отлично ... В чем прикол? Что-то не догоняю? Как послать насильно команду слушать порт, что-ли? или переписать что-то в procedure TslGetCoffee.ServiceExecute(Sender: TService) |
#5
|
|||
|
|||
![]() Попробуй службу запустить под собой, а не под дефолтным системным пользователем. Может там что-то с правами... ну и файервол проверь, что порт открыт.
|
#6
|
|||
|
|||
![]() Спасибо
Проблема решена - во всём виноват брандмауэр |