|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
Спасибо
Проблема решена - во всём виноват брандмауэр |