[英]How to get all services name that runs under “svchost.exe” process
[英]how can i use svchost.exe to host my own services?
我已经用C#编写了服务。 我将服务的DLL保留在c:\\ windows \\ system32 \\ myservice.dll中。 我已经完成了必要的注册表更改,以托管在svchost.exe中,但是未执行我的服务。 它得到1053错误代码。
以下是myservice的注册表项。 我创建了一个密钥,并给出了myservice.dll文件的路径。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\svcsvc2]
"Type"=dword:00000010
"Start"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,4c,00,6f,00,63,00,61,00,6c,00,53,00,65,00,72,00,76,00,69,00,63,\
00,65,00,00,00
"DisplayName"="@%SystemRoot%\\system32\\svcsvc.dll,-200"
"ObjectName"="NT AUTHORITY\\LocalService"
"ServiceSidType"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\svcsvc2\Parameter]
"ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
73,00,76,00,63,00,73,00,76,00,63,00,2e,00,64,00,6c,00,6c,00,00,00
"ServiceMain"="Main"
1053是ERROR_SERVICE_REQUEST_TIMEOUT
该服务未及时响应启动或控制请求。
没有调用StartServiceCtrlDispatcher?
您还将类型设置为SERVICE_WIN32_OWN_PROCESS
,而不是SERVICE_WIN32_SHARE_PROCESS
。
请尊重MSDN上的这个说明 :
请注意,Svchost.exe保留供操作系统使用,而不应由非Windows服务使用。 相反,开发人员应该实现自己的服务托管程序。
svchost不承载.NET框架,因此无法执行.NET程序集。
.NET服务使用自己的应用程序(.exe)运行。
为什么不在VS中创建安装服务的安装项目?
除非你想以编程方式安装一个服务,我会建议你阅读此文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.