Форум: "Начинающим";
Текущий архив: 2015.01.04;
Скачать: [xml.tar.bz2];
ВнизСлужба не работает под Win7 Найти похожие ветки
← →
[ВладОшин] © (2013-12-13 17:06) [0]дайте пинка в сторону,
почему может служба, которая запускается и работает на XP,
не запускаться на 7
На XP запускается, пишет в Eventlog. Да и дальше работает нормально
т.е. один exe копирую на обе машины, инсталю, на XP нормально, под 7 - никак.
delphi 7
Не выполняется даже первая строка
TServiceDvbt = class(TService)
procedure TServiceDvbt.ServiceStart(Sender: TService; var Started: Boolean);
begin
ToLog("Service DVBT Starting..");
← →
sniknik © (2013-12-13 20:14) [1]не работает функция ToLog ? ко всему остальному. прав нет?
← →
Германн © (2013-12-13 22:38) [2]
> Не выполняется даже первая строка
Забавно звучит.
А это разве самая первая строка, если разговор идет об отладчике?
← →
[ВладОшин] © (2013-12-14 01:28) [3]
> не работает функция ToLog ?
не знаю.
Но когда я ее копирую в оконное приложение, она работает. В лог пишется.
И весь сервис суть - запустить поток, ловить и логировать от него мссаджи -
так этот поток запускается, если в оконном приложении его вставить и работает
И весь сервис работает на XP, повторюсь
> один exe копирую на обе машины, инсталю, на XP нормально,
> под 7 - ника
под 7 не работает также, если почти все закомментирую и оставлю только
procedure TServiceDvbt.ServiceStart(Sender: TService; var Started: Boolean);
begin
Started := true;
end;
UAC отключил
админ
> Германн © (13.12.13 22:38) [2]
не понял твоего тонкого юмора
я так написал про первую строку, т.к. это самая первая осебятина. До нее все стандартно.
На XP, где нормально работает, первая строка в логе после запуска - именно эта запись о начале старта службы
← →
[ВладОшин] © (2013-12-14 01:33) [4]даже вот так - не работает.
Индикатор о запуске бежит, бежит, и - все..
type
TServiceDvbt = class(TService)
procedure ServiceExecute(Sender: TService);
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
private { Private declarations }
public { Public declarations }
function GetServiceController: TServiceController; override;
end;
var
ServiceDvbt: TServiceDvbt;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
ServiceDvbt.Controller(CtrlCode);
end;
function TServiceDvbt.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TServiceDvbt.ServiceExecute(Sender: TService);
begin
while not(Terminated) do
ServiceThread.ProcessRequests(true);
end;
procedure TServiceDvbt.ServiceStart(Sender: TService; var Started: Boolean);
begin
Started := True;
end;
procedure TServiceDvbt.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
Stopped := True;
end;
← →
[ВладОшин] © (2013-12-14 01:36) [5]В чем еще засада - не понимаю, как отладить. Как ошибку получить?
Я б ее логгировал - так не запускается ж вообще..
← →
sniknik © (2013-12-14 11:16) [6]отлаживать нужно либо подключаться к процессу (в инете есть описания), либо "выкручиваться" :), я вот постоянно делаю службу "в одном флаконе" с гуевой программой... отлаживать логику проще в ней.
> И весь сервис работает на XP, повторюсь
повторюсь - права. хр меньше защищается и потому больше позволяет. под 7ку писать нужно более... грамотно... осмотрительно...
> так не запускается ж вообще..
вот тут ты врешь...
раз бежит -
> Индикатор о запуске бежит, бежит, и - все..
значит программа запустилась, а от службы нет ответа.
первая строка программы, в dpr - begin (там же Application.Run; до которого утебя возможно не доходит), но есть еще код модулей в их инициализациях.
← →
[ВладОшин] © (2013-12-14 13:12) [7]
> повторюсь - права.
да, наверное..
Уже на некоторые серваки не могу заходить, смотрю..
зы
Я тут увольняюсь, дорабатываю последние времена..
Хотелось подчистить хвосты, а то придет психически неуравновешенный маньяк, а адрес мой в ОК есть :)
← →
[ВладОшин] © (2013-12-14 13:15) [8]да,
а дома все работает, тоже 7ка
← →
[ВладОшин] © (2013-12-14 14:54) [9]блин..Все понял
Скопировал домой код с работы - и дома не работает
короче,
В одном модуле другой модуль и там инициализация не правильная, для окна когда делал, не убрал..А модуль из uses так и не потер.
Ладно, ступил, всем спасибо! :)
← →
[ВладОшин] © (2013-12-14 15:16) [10]И опять ступил
А как же тогда у меня дома заработало?!
Все, теперь точно, нашел!
Когда первый раз поставил службу - забыл дать ей имя, осталась она Service1
Потом имя поменял.
А ОС, когда запускает, ждет же Service1 что ей ответит (наверное так)
1. Деинсталлировал службу
2. cmd -> sc delete Service1
3. Инсталлировал
И все работает :)
А дома заработала, потому что не инсталлировал до этого под именем Service1, а сразу под переделанным
← →
Inovet © (2013-12-14 16:44) [11]> [10] [ВладОшин] © (14.12.13 15:16)
> Service1
Вот она сущность автоименованного зла.
← →
[ВладОшин] © (2013-12-15 10:32) [12]да, а я уж все перебрал, с паники то :)
Модераторам - Прошу прощения "за бложик" :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2015.01.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.001 c