C#实战:教你创建Windows服务

1星 4 下载量 15 浏览量 更新于2024-09-01 收藏 503KB PDF 举报
“使用C#创建Windows服务的实例代码” 创建Windows服务是系统级应用程序开发中的常见任务,尤其在需要后台自动执行的任务或者需要随操作系统启动的服务中。本篇内容将详细讲解如何使用C#在Visual Studio 2015环境下创建一个简单的Windows服务。 首先,确保你的开发环境为Windows 10 64位系统,安装了Visual Studio 2015,并且项目设置为使用.NET Framework 4.0,目标平台为X86。这些配置对于跨平台兼容性和资源利用都是很重要的。 步骤一,创建一个新的Windows服务项目。在Visual Studio中,选择“文件” > “新建” > “项目”,然后在模板列表中找到“Windows服务”项目模板,命名为"MyWindowsService"。 步骤二,修改默认生成的类名和服务行为。在解决方案资源管理器中,将默认的"Service1.cs"重命名为"MyService1.cs",双击打开文件,可以看到ServiceBase派生的类`Service1`,将其改名为`MyService`。在`MyService`类中,初始化组件调用`InitializeComponent()`,这是必要的,因为它包含了服务启动和停止事件的配置。 在`MyService`类中,我们需要覆盖两个关键方法:`OnStart`和`OnStop`。`OnStart`方法在服务启动时被调用,`OnStop`则在服务停止时执行。例如,下面的代码示例展示了如何在服务启动和停止时向指定日志文件写入时间戳信息: ```csharp using System; using System.ServiceProcess; using System.IO; namespace MyWindowsService { public partial class MyService : ServiceBase { string filePath = @"D:\MyServiceLog.txt"; public MyService() { InitializeComponent(); } protected override void OnStart(string[] args) { using (FileStream stream = new FileStream(filePath, FileMode.Append)) using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine($"{DateTime.Now}, 服务启动!"); } } protected override void OnStop() { using (FileStream stream = new FileStream(filePath, FileMode.Append)) using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine($"{DateTime.Now}, 服务停止!"); } } } } ``` 接下来,我们需要为服务添加安装程序。在设计视图中,右键点击"MyService"组件,选择“添加安装程序”。这会自动生成两个类:`ProjectInstaller`和`ServiceInstaller`。在`ProjectInstaller`类中,设置服务安装器的属性,如服务名称和服务账户信息。 最后,为了能够安装和启动这个服务,你需要使用命令行工具`installutil.exe`。该工具通常位于.NET Framework的安装目录下,如`C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe`。通过命令行,你可以指定服务的可执行文件路径来安装和卸载服务。 至此,你已经成功地创建了一个简单的C# Windows服务,它可以按需记录服务的启动和停止时间。在实际应用中,你可以根据需求扩展此服务,例如添加定时任务、数据库交互或网络通信功能。