Работаю на Win2k Advanced Server. Забацал новую службу в VC++ 2003. Сгенерировал мастером ATL 7.0 каркас, скомпилировал, зарегистрировал (запустил .exe с ключем /Service). Пробую стартовать службу из консоли Service Control Manager'а и получаю отлуп в MessageBox весьма пространного содержания:
Could not start blah-blah-blah service on Local Computer.
The service did not return an error. This could be an internal Windows error or an internal service error.
If the problem persists, contact your system administrator.
Во всей этой истории напрягает больше всего то, что каркас службы сгенерированный в VC 6.0 запускается сразу же, а то что делает мастер ATL 7.0 из VC 2003 -- не работает. Вероятно, требуется какая-то доработка этого каркаса. В MSDN про такие фишки ничего нет. Может подскажет кто-нить, где тут собака порылась?
Check if you have this one in sys32: MSVCR71d.dll MSVCRT.dll., perhaps some more. Your machine lacks some runtime files.
David
S>Hello All!
S>Такая проблема.
S>Работаю на Win2k Advanced Server. Забацал новую службу в VC++ 2003. Сгенерировал мастером ATL 7.0 каркас, скомпилировал, зарегистрировал (запустил .exe с ключем /Service). Пробую стартовать службу из консоли Service Control Manager'а и получаю отлуп в MessageBox весьма пространного содержания:
S>Could not start blah-blah-blah service on Local Computer. S>The service did not return an error. This could be an internal Windows error or an internal service error. S>If the problem persists, contact your system administrator.
S>Во всей этой истории напрягает больше всего то, что каркас службы сгенерированный в VC 6.0 запускается сразу же, а то что делает мастер ATL 7.0 из VC 2003 -- не работает. Вероятно, требуется какая-то доработка этого каркаса. В MSDN про такие фишки ничего нет. Может подскажет кто-нить, где тут собака порылась?
S>Спсиб.
Re[2]: ATL 7.0 Service не работает
От:
Аноним
Дата:
28.05.04 11:48
Оценка:
Здравствуйте, DavidTelAviv, Вы писали:
msvcrt71d.dll exists in system32 folder.
I found why services could not be started. The function below returns code 1:
If I comment the row, the service starts successfully. Otherwise, it sucks. Anyway, I'd like to know why is that? Is it Microsoft issue, or mine?
Mikhail
DTA>Здравствуйте, spacecraft, Вы писали:
DTA>Check if you have this one in sys32: MSVCR71d.dll MSVCRT.dll., perhaps some more. Your machine lacks some runtime files. DTA>David
S>>Hello All!
S>>Такая проблема.
S>>Работаю на Win2k Advanced Server. Забацал новую службу в VC++ 2003. Сгенерировал мастером ATL 7.0 каркас, скомпилировал, зарегистрировал (запустил .exe с ключем /Service). Пробую стартовать службу из консоли Service Control Manager'а и получаю отлуп в MessageBox весьма пространного содержания:
S>>Could not start blah-blah-blah service on Local Computer. S>>The service did not return an error. This could be an internal Windows error or an internal service error. S>>If the problem persists, contact your system administrator.
S>>Во всей этой истории напрягает больше всего то, что каркас службы сгенерированный в VC 6.0 запускается сразу же, а то что делает мастер ATL 7.0 из VC 2003 -- не работает. Вероятно, требуется какая-то доработка этого каркаса. В MSDN про такие фишки ничего нет. Может подскажет кто-нить, где тут собака порылась?
S>>Спсиб.
And if you try this :
hr = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, REGCLS_MULTIPLEUSE);
?
In fact ATL template calss calls registration.
А>Здравствуйте, DavidTelAviv, Вы писали:
А>msvcrt71d.dll exists in system32 folder.
А>I found why services could not be started. The function below returns code 1:
А>
А>If I comment the row, the service starts successfully. Otherwise, it sucks. Anyway, I'd like to know why is that? Is it Microsoft issue, or mine?
А>Mikhail
DTA>>Здравствуйте, spacecraft, Вы писали:
DTA>>Check if you have this one in sys32: MSVCR71d.dll MSVCRT.dll., perhaps some more. Your machine lacks some runtime files. DTA>>David
S>>>Hello All!
S>>>Такая проблема.
S>>>Работаю на Win2k Advanced Server. Забацал новую службу в VC++ 2003. Сгенерировал мастером ATL 7.0 каркас, скомпилировал, зарегистрировал (запустил .exe с ключем /Service). Пробую стартовать службу из консоли Service Control Manager'а и получаю отлуп в MessageBox весьма пространного содержания:
S>>>Could not start blah-blah-blah service on Local Computer. S>>>The service did not return an error. This could be an internal Windows error or an internal service error. S>>>If the problem persists, contact your system administrator.
S>>>Во всей этой истории напрягает больше всего то, что каркас службы сгенерированный в VC 6.0 запускается сразу же, а то что делает мастер ATL 7.0 из VC 2003 -- не работает. Вероятно, требуется какая-то доработка этого каркаса. В MSDN про такие фишки ничего нет. Может подскажет кто-нить, где тут собака порылась?
S>>>Спсиб.
But result is the same. So, how come Microsoft put this call in PreMessageLoop function of CAtlExeModuleT template, if a service can be started without it? Also, will a service be operable without the call?
Mikhail
DTA>Здравствуйте, Аноним, Вы писали:
DTA>And if you try this : DTA> hr = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, REGCLS_MULTIPLEUSE); DTA>? DTA>In fact ATL template calss calls registration.
А>>Здравствуйте, DavidTelAviv, Вы писали:
А>>msvcrt71d.dll exists in system32 folder.
А>>I found why services could not be started. The function below returns code 1:
А>>
А>>If I comment the row, the service starts successfully. Otherwise, it sucks. Anyway, I'd like to know why is that? Is it Microsoft issue, or mine?
А>>Mikhail
DTA>>>Здравствуйте, spacecraft, Вы писали:
DTA>>>Check if you have this one in sys32: MSVCR71d.dll MSVCRT.dll., perhaps some more. Your machine lacks some runtime files. DTA>>>David
S>>>>Hello All!
S>>>>Такая проблема.
S>>>>Работаю на Win2k Advanced Server. Забацал новую службу в VC++ 2003. Сгенерировал мастером ATL 7.0 каркас, скомпилировал, зарегистрировал (запустил .exe с ключем /Service). Пробую стартовать службу из консоли Service Control Manager'а и получаю отлуп в MessageBox весьма пространного содержания:
S>>>>Could not start blah-blah-blah service on Local Computer. S>>>>The service did not return an error. This could be an internal Windows error or an internal service error. S>>>>If the problem persists, contact your system administrator.
S>>>>Во всей этой истории напрягает больше всего то, что каркас службы сгенерированный в VC 6.0 запускается сразу же, а то что делает мастер ATL 7.0 из VC 2003 -- не работает. Вероятно, требуется какая-то доработка этого каркаса. В MSDN про такие фишки ничего нет. Может подскажет кто-нить, где тут собака порылась?
S>>>>Спсиб.
Sorry for this _Module stuff, I got it in old project based on ATL3.
Hold on.
Why you are using CAtlExeModuleT as base? Shouldn't it be CAtlServiceModuleT which is in turn deriverd from CAtlExeModuleT?!
I got very similar problem with class reg. I deleted service entries in registry and deleted DCOM config entry and that helped in my case. It's something messy in COM class entries in registry I guess.
S>Здравствуйте, DavidTelAviv, Вы писали:
S>Nope. This is not suitable. ATL 7.0 does not support _Module global variable anymore. There is _pAtlModule variable declared as:
S>
S>But result is the same. So, how come Microsoft put this call in PreMessageLoop function of CAtlExeModuleT template, if a service can be started without it? Also, will a service be operable without the call?
S>
S>Mikhail
DTA>>Здравствуйте, Аноним, Вы писали:
DTA>>And if you try this : DTA>> hr = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, REGCLS_MULTIPLEUSE); DTA>>? DTA>>In fact ATL template calss calls registration.
А>>>Здравствуйте, DavidTelAviv, Вы писали:
А>>>msvcrt71d.dll exists in system32 folder.
А>>>I found why services could not be started. The function below returns code 1:
А>>>
А>>>If I comment the row, the service starts successfully. Otherwise, it sucks. Anyway, I'd like to know why is that? Is it Microsoft issue, or mine?
А>>>Mikhail
DTA>>>>Здравствуйте, spacecraft, Вы писали:
DTA>>>>Check if you have this one in sys32: MSVCR71d.dll MSVCRT.dll., perhaps some more. Your machine lacks some runtime files. DTA>>>>David
S>>>>>Hello All!
S>>>>>Такая проблема.
S>>>>>Работаю на Win2k Advanced Server. Забацал новую службу в VC++ 2003. Сгенерировал мастером ATL 7.0 каркас, скомпилировал, зарегистрировал (запустил .exe с ключем /Service). Пробую стартовать службу из консоли Service Control Manager'а и получаю отлуп в MessageBox весьма пространного содержания:
S>>>>>Could not start blah-blah-blah service on Local Computer. S>>>>>The service did not return an error. This could be an internal Windows error or an internal service error. S>>>>>If the problem persists, contact your system administrator.
S>>>>>Во всей этой истории напрягает больше всего то, что каркас службы сгенерированный в VC 6.0 запускается сразу же, а то что делает мастер ATL 7.0 из VC 2003 -- не работает. Вероятно, требуется какая-то доработка этого каркаса. В MSDN про такие фишки ничего нет. Может подскажет кто-нить, где тут собака порылась?
S>>>>>Спсиб.