# 七、总结

窗口服务是一个可执行程序，运行在自己的窗口会话中。这些服务不显示任何用户界面，即使没有用户登录到运行它们的计算机上，也可以运行。

管理员可以使用位于控制面板管理工具部分的服务管理单元来管理 Windows 服务。

由于 Windows 服务没有用户界面，因此建议使用 Windows 事件日志与管理用户进行通信。Windows 事件日志是计算机警报和通知的记录，可以按照警告、信息、错误、安全成功审核或安全失败审核类型进行分类。可以在窗口事件查看器中查看写在窗口事件日志中的条目。

可以使用 Visual Studio 创建带有 Windows 服务项目类型的 Windows 服务，它会自动创建服务代码基线。`ServiceBase`。NET 基类用于创建派生的自定义类，以便开发服务。然后，可以定制代码基线以适应特定的项目需求。

`OnStart`和`OnStop`事件分别用于捕捉服务开始执行的时刻和服务停止执行的时刻。

如果在服务执行过程中需要持续的事件监控，建议使用`Timer`类实例。

服务可执行文件可以使用。NET 安装工具。InstallUtil 工具是一个命令行实用程序，允许您安装和卸载服务器资源，它随 Visual Studio 一起提供。应该创建用于安装和卸载的 BAT 文件，并且 InstallUtil 工具必须在安装包中附带 BAT 文件和服务可执行文件。我建议发行包使用 ZIP 文件格式，以便使交付成为一个简单的步骤。

如果一个窗口服务需要参数才能工作，最简单和最常见的提供参数的方法是使用文本文件。可以使用不同的格式，但最可靠的是 XML。文本编辑器程序通常用于创建或编辑文件。然而，执行这项任务的更专业的方法是为程序提供用户界面。

可以开发一个 Windows 窗体程序来管理服务参数。该程序必须允许您输入参数值，然后将它们保存在文件中。程序必须使用`ServiceController`类来传达对服务所做的更改。

最后，用于管理服务参数的用户界面程序必须与服务部署包一起交付，并复制到存储服务可执行文件的同一文件夹中。