windows服务 服务没有及时响应启动或控制请求

场景:VC6.0 编写Windows服务遇到的有关问题:服务没有及时响应启动或控制请求

VC6.0 编写Windows服务遇到的问题:服务没有及时响应启动或控制请求
   自己是新手,尝试编写了一个简单的windows服务,编写完成后使用命令行安装,然后从服务器控制管理器启动服务时,弹出错误提示:windows无法启动test_service服务(位于本地计算机上)。
                   错误1053:服务没有及时响应启动或控制请求
    不知是程序中缺少什么代码,还是自己启动是缺少什么步骤,或操作有误,望各位大侠不吝指导
------解决方案--------------------
你的工作线程入口写在哪里?
------解决方案--------------------
没试过建win32控制台应用来建服务,都是用的atl来建的,他帮你写好了注册服务等等那些功能
------解决方案--------------------
写日志,看每个函数的返回值。
------解决方案--------------------
用调试器(OD,WINDBG等)调试服务程序
To debug the initialization code of a service application, the debugger must be attached when the service is started. This is accomplished by creating a registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ProgramName


The ProgramName is the image file for the service application you are debugging. Do not specify a path. For example, the ProgramName might look like MyService.exe.

Under this key create a string data value called Debugger. The value of this string should be set to the full path of the debugger that will be used. For example,

c:\Debuggers\windbg.exe



In addition to setting this registry key, the service application must be marked as "interactive". This allows your service to interact with the desktop, and allows the debugger window to appear on your desktop.

This again requires modifying a registry key: you must bitwise-or the type entry for your service with 0x100 (this is the value for SERVICE_INTERACTIVE_PROCESS according to Winnt.h). The exact location and name of this registry entry varies. For example:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyServiceKey


Finally, you need to adjust the service application timeout. Otherwise, the service application will kill the debugger within 20 seconds after starting. Adjusting the timeout involves setting an entry in the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control


Under this key, create a DWORD data value called ServicesPipeTimeout. Set this entry to the amount of time in milliseconds that you want the service to wait before timing out. For example, 60,000 is one minute, while 86,400,000 is 24 hours.

设置ServicesPipeTimeout后需要重启系统才生效

Now, when the service is started, the debugger will also start. When the debugger starts, it will stop at the initial process breakpoint, before the service has begun running. This allows you to set breakpoints or otherwise configure your debugging session to let you monitor the startup of your service. Another option is to place calls to the DebugBreak function in your service from the point at which you would like to break into the debugger. (For more information, see DebugBreak in the Platform SDK documentation.)

If your service is running with other services in a Service Host Process, you may need to isolate the service into its own Service Host Process.