如何:对服务执行管理任务

更新:2007 年 11 月

可以对服务执行各种标准管理任务,包括启动、停止、暂停和重新启动服务。可以通过两种方式来执行这些任务:通过使用“服务器资源管理器/数据库资源管理器”中的“启动服务管理器”或通过对连接到现有服务的 ServiceController 组件实例调用方法。

通常情况下,服务的作者编写代码来自定义与特定任务关联的操作。例如,服务可以包含响应 OnPause 命令的代码。在这种情况下,“暂停”任务的自定义处理在该服务暂停之前执行。有关定义服务功能的信息,请参见 如何:创建 Windows 服务

特定任务对某个服务是否可用取决于该服务的属性;例如,可以将某个服务的 CanStop 属性设置为 false。这会导致“停止”命令变为对该特定服务不可用。如果试图利用代码停止该服务,系统将引发错误:“未能停止服务名”。

说明:

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置

从服务器资源管理器/数据库资源管理器中执行管理任务

  1. 如果要在其上执行任务的服务器尚未列出,则在“服务器资源管理器/数据库资源管理器”中添加该服务器。有关更多信息,请参见如何:访问和初始化服务器资源管理器/数据库资源管理器

  2. 若要打开服务控制台并访问单个服务选项,请右击“服务”节点并单击“启动服务管理器”。

以编程方式执行管理任务

  1. 创建 ServiceController 类的实例,并将其配置为与要管理的服务进行交互。有关更多信息,请参见如何:创建 ServiceController 组件实例

  2. 调用适当的方法启动、停止、暂停或继续该服务。

    提示:

    可能需要查询与这些命令中的任意一个命令相对应的属性,以确定服务是否会响应您的请求;即,可能需要创建一个查询服务上的 CanStop 属性的条件语句,并确定在调用 Stop 方法之前此属性是否设置为 true。

    下面的示例显示在发出一条给定的命令前,如何计算某个服务是否可以接受该命令。

    If myController.CanStop Then
        myController.Stop()
    End If
    
         if (myController.CanStop)
            {
                myController.Stop();
            }
    

请参见

任务

如何:创建 ServiceController 组件实例

如何:检索服务列表

如何:创建 Windows 服务

概念

与现有服务进行通信的介绍

参考

如何:访问和初始化服务器资源管理器/数据库资源管理器