Service Application
От: TanV  
Дата: 18.07.03 04:56
Оценка:
Создаю New\Service Application, для сервиса делаю thread. Инсталирую сервис, запускаю\останавлюваю все проходит без ошибок. Действия на ServiceCreate происходят, но ServiceStart/Stop/Execute/Pause не выполняються. В журнал событий приложений не чего не пишется, но единожды в нем записалось штук 100 одинаковых событий с текстом "Не найдено описание для события с кодом ( 0 ) в источнике ( ServiceMSGDisp ). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера. В записи события содержится следующая информация: Ошибка Не был произведен вызов CoInitialize." Сделала CoInitialize, хотя он вроде не нужен: событий нет, действий нет. Убрала результат тот же.
В чем может быть проблема? Что я упустила?
//---------------------------------------------------------------------------
void __fastcall TServiceMSGDisp::ServiceCreate(TObject *Sender)
{
//некоторое действие
}
void __fastcall TServiceMSGDisp::ServiceStart(TService *Sender, bool &Started)
{
CoInitialize(NULL);
MainProcess = new MainThread(false);
MainProcess->Resume();
Started = true;
LogMessage("Запуск", EVENTLOG_INFORMATION_TYPE,0,0);
}
void __fastcall TServiceMSGDisp::ServicePause(TService *Sender, bool &Paused)
{
MainProcess->Suspend();
Paused=true;
}
void __fastcall TServiceMSGDisp::ServiceStop(TService *Sender, bool &Stopped)
{
MainProcess->Terminate();
Stopped=true;
CoInitialize(NULL);
}
void __fastcall TServiceMSGDisp::ServiceContinue(TService *Sender,
bool &Continued)
{
MainProcess->Resume();
Continued=true;
}
__fastcall MainThread::MainThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
FreeOnTerminate=true;
}
void __fastcall MainThread::Execute()
{
while (!Terminated) {//некоторое действие }
}
Re: Service Application
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 18.07.03 06:04
Оценка:
Здравствуйте, TanV, Вы писали:

[]

В чем проблема? Не приходит Pause?
Re[2]: Service Application
От: TanV  
Дата: 18.07.03 06:27
Оценка:
Здравствуйте, Alexey Shirshov, Вы писали:

AS>В чем проблема? Не приходит Pause?

Из служб с моим сервисом все действия (стоп, пауза и т.д.) проходят, но фактически действия на ServiceStart\Stop\Continue\и т.д. не происходят, например, на старт должен реестр прочитаться, на стоп — в файл писать. В отладчике он в эти процедуры даже не заходит. А на ServiceCreate действия происходят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.