Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.03.2014
Сообщений: 22
1

Почему запуская службу, по факту она начинает работать только спустя 50 - 60 секунд?

01.07.2014, 19:42. Просмотров 567. Ответов 3
Метки нет (Все метки)

Всем доброго времени суток, прошу у Вас помощи. Ситуация следящая:
Приложение создает и запускает службу. Служба создается и запускается хорошо, все работает за исключением одной серьезной проблемы. Почему служба начинает работать не с момента ее запуска, а примерно через 50 -60 секунд? Заходя через панель управления в "Службы (локальные)", наш сервис работает со статусам "Выполняется". Отлично, запускаю программу, в качестве службы для запуска которой была создана ее БД, я получаю ошибку "Соединение с базай данных не установлено". Сидим на месте 60 секунд ничего не делая, а потом пробуем сново запустить базу, и вуаля, БД успешно работает.
Еще раз, только более просто. Создаем сервис - ок. Пробуем запустить его - ок (входим через панель управления в службы и видим нашу службу в статусе запущеной). Запускаем базу данных которая создавалась как служба и получаем ошибку что не удалось запустить БД. Черезе 60 сек. еще раз запускаем базу и она запускается.
Вот код на запуск:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure TMainForm.StartService(ServiceName: String);
var
  schService,
    schSCManager: Dword;
  p: PChar;
begin
  p := nil;
  schSCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
  if schSCManager = 0 then
    RaiseLastWin32Error;
  try
    schService := OpenService(schSCManager, PChar(ServiceName),
      SERVICE_ALL_ACCESS);
    if schService = 0 then
      RaiseLastWin32Error;
    try
      if not Winsvc.startService(schService, 0, p) then
        RaiseLastWin32Error
      else
      begin
          MessageDLG('Служба успешно запущена!', mtInformation, [mbOk], 0);
      end;
    finally
      CloseServiceHandle(schService);
    end;
  finally
    CloseServiceHandle(schSCManager);
  end;
end;
[ПС, как понимаю в конце функции нужно вызвать ServiceUpdate() или что то типа того, что бы обновить данные в .]

Очень надеюсь на Вашу помощь.

Добавлено через 2 часа 29 минут
Ну же, неужели никто не имел дело с такой проблемай?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2014, 19:42
Ответы с готовыми решениями:

Timer начинает работать на второй форме, пока она еще не открыта
Здравствуйте, я студент, пишу простенькую программу, представляющую из себя небольшой тест....

Видеокарта начинает работать только в новом разъеме
Здравствуйте. Давным давно отсоединял видео карту что бы почистить, вставил обратно, запустил...

ContextMenuStrip начинает работать только после второго раза
Сделал меню правой кнопки мыши для Datagridview. Но не могу понять, запустил приложение, кликаю 1...

Ubuntu начинает нормально работать только после ухода в сон
В общем-то, я поставил Ubuntu 18.04 рядом с windows 10. По какой-то причине когда я запускаю...

3
Модератор
3467 / 2593 / 738
Регистрация: 19.09.2012
Сообщений: 7,956
01.07.2014, 20:11 2
Может проблема в службе, а не в ее запуске?
0
2644 / 2267 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
01.07.2014, 23:09 3
Цитата Сообщение от grokki Посмотреть сообщение
Приложение создает ..службу. Служба создается
В упор не вижу ни единой строчки, касаемой именно создания
0
пофигист широкого профиля
4169 / 2712 / 770
Регистрация: 15.07.2013
Сообщений: 15,782
02.07.2014, 03:03 4
Цитата Сообщение от grokki Посмотреть сообщение
запускаю программу, в качестве службы для запуска которой была создана ее БД
Цитата Сообщение от grokki Посмотреть сообщение
Запускаем базу данных которая создавалась как служба
Кроме как бред я эти фразы воспринять не в состоянии.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2014, 03:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Привод windows 7 64 начинает работать только при перезагрузке с диском
Здравствуйте, заметил такую ситуацию, решил воспользоваться приводом за долгое время) И увидел, что...

Wifi начинает работать только после перехода в спящий режим на ноутбуке
Ноутбук toshiba satelite l850d windows7x64 . При включении ноутбука или перезагрузки не работает...

Включаю компьютер с кнопки, начинает работать, только на мониторе ничего нет
Здарова всем! Такая ситуация: Включаю комп с кнопки на системнике, начинает работать, только на...

Ноутбук HP Pavilion DV6, клавиатура начинает работать только после отключения тачпада
Добрый день. Ноутбук HP Pavilion DV6, при включении нажимаю к примеру esc - меню или f10 - биос,...

Адаптивный слайдер типа Карусель начинает работать только при изменении окна браузера
Уважаемые коллеги! Прошу помощи. Установила адаптивный слайдер типа Карусель. Сайт сделан на...

Почему android начинает глючить ( лагать, не адекватно работать, виснуть) при подключении интернета?
Причём не важно - подключение идёт через wifi или мобильный интернет. По usb, не проверял, но думаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.