65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Visual Studio .NET 开发 Windows 服务详解 - 第 1 部分

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.75/5 (7投票s)

2007年8月15日

CPOL

2分钟阅读

viewsIcon

30705

开发、使用和调试 Windows 服务的概述和逐步指南

引言

对于初级到中级 .NET 程序员来说,最困难的任务之一是在 .NET Windows 服务运行时对其进行调试。 即使您确实有一个可以使用的开发服务器,调试现有代码起初也可能看起来是一项神秘的任务。 我记得几年前我在网上研究这个主题时,没有人给你一个直接而简单的答案。 所以这是我简化这个主题的尝试。

Windows 服务架构

  1. 服务应用程序: 这种类型的应用程序基本上是在服务下运行的实际 Windows .NET 服务。
  2. 服务控制器应用程序: 这种类型的应用程序使您能够控制现有应用程序的行为,启动、停止、暂停和继续服务。
  3. 服务控制管理器: 这是 Windows 附带的实用程序,使您能够控制安装在计算机上的所有服务。 可以在“控制面板 > 管理工具 > 服务”中找到它。

命名空间

  • Windows 服务: System.ServiceProcess
  • 安装程序命名空间: System.ServiceProcess.ServiceInstaller 和 ServiceProcessInstaller
  • 服务控制器: System.ServiceProcess.ServiceController

    注册表信息

    包含在 Windows 机器上运行的所有服务的列表的注册表位置是

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

    这是安装 .NET 服务时典型的注册表条目的外观


    Screenshot - 081507_b1_i1.gif

    最值得注意的是“ImagePath”条目,其中包含运行该服务的可执行文件的路径。 可以更改此值以指向不同版本的服务可执行文件以进行测试。

    重要说明

  • 服务必须在运行可执行文件之前安装,才能使用它们。 您不能简单地在 Visual Studio 中按 RUN 并以这种方式运行它们,或者双击可执行文件并期望与它们交互!
  • 您不能使用 F5、F10 或 F11 单步执行代码的方法来调试 Windows 服务。 为了能够做到这一点,必须安装服务,在 Windows 服务控制器下启动服务,并且其进程必须附加到 Visual Studio 中的源代码。
  • Windows 服务打开或使用的任何消息框、对话框或 Windows 窗体都会对用户隐藏,除非您选中服务属性下的复选框,该复选框显示“与桌面交互”,在这种情况下,您将看到它们全部!
  • Windows 服务中发生的错误消息记录在机器的“事件日志”中。

    可用方法

    以下是可以/必须重写的方法列表,以便成功运行服务或运行服务控制器应用程序

    1. 服务基类的方法(要重写)
    • OnStart()
    • OnPause()
    • OnStop()
    • OnContinue()
    • OnShutDown()
    • OnCustomCommand()
    • OnPowerEvent()
    1. 服务控制器类的方法
    • Close()
    • Continue()
    • ExecuteCommand()
    • Pause()
    • Refresh()
    • Start()
    • Stop()

    点击这里转到本文的第 2 部分。

    Pete Soheil
    DigiOz Multimedia
    http://www.digioz.com/

  • © . All rights reserved.