本文内容
警告
此文档不适用于 服务的最新版本。 有关使用 的 服务上的最新内容和辅助角色服务模板,请参阅:
服务(过去称为 NT 服务)允许用户创建可在其自身的 会话中长时间运行的可执行应用程序。 这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显示任何用户界面。 这些功能使服务非常适合在服务器上使用,或者需要长时间运行的功能(不会影响在同一台计算机上工作的其他用户)的情况。 还可以在与登录用户或默认计算机帐户不同的特定用户帐户的安全性上下文中运行服务。 有关服务和 会话的详细信息,请参阅 SDK 文档。
可以通过创建作为服务安装的应用程序来轻松创建服务。 例如,假设你想监视性能计数器数据并对阈值作出响应。 可以编写一个侦听性能计数器数据的 服务应用程序,部署该应用程序并开始收集和分析数据。
可以将服务创建为 项目,并在其中定义代码,以控制可以将哪些命令发送到服务以及在收到这些命令时应采取的操作。 可以发送到服务的命令包括启动、暂停、恢复和停止服务,还可以执行自定义命令。
在创建和生成应用程序之后,可以通过运行命令行实用程序 .exe 并将该路径传递给服务的可执行文件来安装它。 然后,可以使用服务控制管理器 来启动、停止、暂停、恢复和配置服务。 还可以在“服务器资源管理器”的“服务”节点中或使用 类完成许多相同的任务。
服务应用程序与其他 应用程序
服务应用程序与许多其他项目类型的运行方式存在以下几个方面的不同:
服务生存期
一项服务在其生存期内会经历几个内部状态。 首先,服务会安装到它将在其上运行的系统上。 此过程执行服务项目的安装程序,并将该服务加载到该计算机的服务控制管理器 中。 服务控制管理器是 提供的用于管理服务的中央实用程序。
必须在服务加载完成后启动它。 启动该服务以允许它开始运行。 可以从服务“服务控制管理器”、“服务器资源管理器”,或从通过调用 Start 方法的代码来启动服务。 Start 方法将处理进程传递给应用程序的 方法,并处理在那里定义的任何代码。
正在运行的服务可以在此状态下无限期地存在,直到它停止或暂停,或者直到计算机关闭。 服务可以三种基本状态之一存在:、 或 。 该服务还可以报告挂起命令的状态:、、 或 。 这些状态指示命令已发出(例如,暂停正在运行的服务的命令),但尚未执行。 可以查询 以确定服务所处的状态,或者在出现其中任一状态时使用 执行操作。
可以从“服务控制管理器” 、“服务器资源管理器” ,或通过调用代码中的方法来暂停、停止或恢复服务。 其中的每个操作都可以调用服务中的相关过程(、 或 ),可以在其中定义在服务更改状态时执行的其他处理进程。
服务类型
可以使用 .NET 在 中创建两种服务类型。 作为进程中唯一服务的服务将分配类型 。 与其他服务共享进程的服务将分配类型 。 可以通过查询 属性来检索服务类型。
如果查询未在 中创建的现有服务,则可能偶尔会看到其他服务类型。 有关这些服务类型的更多信息,请参阅 。
服务和 组件
组件用于连接到已安装的服务并操纵其状态;可以使用 组件启动和停止服务,暂停并继续其运行,并将自定义命令发送到服务。 但是,在创建服务应用程序时,无需使用 组件。 事实上,在大多数情况下, 组件应存在于定义服务的 服务应用程序的单独应用程序中。
有关详细信息,请参阅 。
要求请参阅
发表回复