如何指示我的Windows服务不可用?

时间:2011-10-31 13:35:30

标签: windows-services

https://serverfault.com/questions/70028/pausing-a-not-pausable-service-pausing-a-not-pausable-service-from-the-command讨论暂停NOT_PAUSABLE服务。我如何表明我的服务开始时不可用?我希望我的服务只支持启动/停止操作。

3 个答案:

答案 0 :(得分:1)

创建服务时,您填写了a SERVICE_STATUS structure。结构中的一个字段称为dwControlsAccepteddwControlsAccepted的其中一个选项是SERVICE_ACCEPT_PAUSE_CONTINUE。如果您没有说您支持暂停/继续,那么SCM将报告它不支持暂停/继续。

答案 1 :(得分:1)

检查Windows服务:

例如检查DNS客户端

Service keyname      : DNScache
Service Displayname  : DNS Client

使用: SC QUERY

运行CMD(命令提示符)>类型:

SC QUERY DNSCACHE

结果:

SERVICE_NAME: DNSCACHE
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

州代码:

  • 4:跑步。停止或暂停的可能性取决于服务本身
  • 7:暂停。停止或暂停的可能性取决于服务本身。当然是Continuable
  • 1:停了下来。已经停止不可停止或可停用;)

CODE

SC GETKEYNAME **YOUR SERVICE**
SC GETDISPLAYNAME **YOUR SERVICE**   
SC                                   >> Showing Other Command Available 

[有趣的是:我无法从DNS客户端获取密钥名称(SC GETKEYNAME),但显示来自DNSCACHE的显示名称(SC GETDISPLAYNAME)]

从该链接再次仔细阅读问题,我认为已经回答:)

Windows XP服务:http://ss64.com/nt/syntax-services.html

答案 2 :(得分:0)

我来到这篇文章的目的是使我的服务变得暂停。我可以通过服务的构造函数中的CanPauseAndContinue属性进行设置。

https://docs.microsoft.com/en-us/dotnet/api/system.serviceprocess.servicebase.canpauseandcontinue?view=dotnet-plat-ext-3.1