站在巨人的肩膀上:C#编写WindowsService

本文将为大家详细介绍如何用C#编写一个系统服务,当然肯定不是教大家从头写,而是在一个搭建好的框架上进行自我创作!

一、项目整体架构

本项目的开发是针对某设备的开启异常情况进行邮件提醒,针对监控到的未开启情况进行层层逻辑判断其设备是否是在工作时间未开启或者异常客观原因,然后再向相关责任人发送邮件提醒及时处理。

二、站在巨人的肩膀上开始创作

假设你现在有一个搭建好的WindowsService项目的框架,你要将其改造成自己需要的系统服务去定时执行一些操作功能,那就请认真看下面的介绍。

1、修改项目名称

首先将解决方案名字改成自己需要的,当然可能内置的一些文件已经在建立新项目的时候自动生成的无法更改,但不影响你的使用哦。

右键鼠标,点击重命名,改成自己的,当然这个还不够,可以使用查找替换,将以前的名称涉及到的地方全部替换成自己修改的(需要注意查找条件的设置,否则会替换错

 2、修改属性

对于服务的安装程序进行属性修改,改成自己想要的,具体如下。

 对服务日志进行属性修改,改成自己的,具体如下。

 

 3、编写自己的逻辑代码,实现功能

需要注意的点:

(1)服务日志的映射,这样写好之后,就可以在对应资源下看到我们服务的日志记录啦。

(2)日志写入方法,这样在服务执行过程中,你希望它什么时候给你反馈信息,你就在哪里添加这个方法和你想要的信息即可,后续方法会有相关例子出现。

(3) 服务启动方法,可在这个方法里设置服务间隔多少时间执行,执行什么事件,写日志信息。

(4)服务停止方法,停止服务同时停止计时器及其事件。

 3、测试服务代码

在部署系统服务之前,必须先保证自己的代码逻辑正确,能实现对应功能,因此需新建一个窗体进行测试功能是否能正常、准备执行。如何测试呢?很简单,先把自己编写的业务逻辑代码全部复制到这个窗体中,除开专门对应服务的方法( Service1()、WriteLog(string EventName, string Message)、OnStart(string[] args)、OnStop())。

别忘了这里的启动项也需要修改哦!

等调试成功,这个WindowsService就可以部署到服务器上了。

三、部署服务

1、准备好前人开辟好的安装服务、卸载服务的bat文件。

 2、分别邮件选择编辑,即可看到一个记事本,将里面的内容修改为自己的保存即可。

3、准备好一切后,就可以开始部署了,直接将该安装卸载程序复制到对应服务器目录下,同时将Debug里面的东西全部复制到相同目录下。

再以管理员身份运行安装服务,等待安装完成后,进入计算机管理,找到服务进去查看自己的服务是否安装成功。注意:每次重新安装服务后,第一次都需要手动启动一下。每次卸载服务之前都需要先停止该服务之后,再运行卸载服务。

以上就是所有的在搭建好的系统服务项目基础上进行编写修改自己的WindowsService。

如果有小伙伴想从新建项目开始进行编写WindowsService,可以参考下面这些文档哦。

C# 创建Windows Service(Windows服务)程序_夏二咩的博客-CSDN博客_c# service

C# 开发Windows Service_、极客飞鹏の的博客-CSDN博客_c# windows service

C#创建Windows Service(Windows 服务)基础教程 - 走看看

在c#中创建Windows服务 - 码农教程

C#编写windows服务程序

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍如何使用 CSS、HTML 和 JavaScript 开发一个响应式的进击的巨人。 首先,我们需要编写 HTML 代码来构建网的基本结构。以下是一个简单的 HTML 模板,您可以在其中添加您自己的内容: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>进击的巨人</title> <link rel="stylesheet" href="style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <header> <nav> <ul> <li><a href="#">首页</a></li> <li><a href="#">角色介绍</a></li> <li><a href="#">剧情梗概</a></li> <li><a href="#">动画资讯</a></li> <li><a href="#">关于我们</a></li> </ul> </nav> <h1>进击的巨人</h1> </header> <main> <section class="hero"> <h2>英雄</h2> <p>艾伦·耶格尔,一个普通的少年,他的生命因为巨人的袭击而发生了翻天覆地的变化。</p> </section> <section class="villain"> <h2>反派</h2> <p>巨人,是人类的天敌,它们的出现带来了无尽的痛苦和灾难。</p> </section> <section class="supporting-characters"> <h2>配角</h2> <ul> <li>三笠·阿克曼</li> <li>利威尔·阿尔敏</li> <li>米卡·阿卡曼</li> <li>...</li> </ul> </section> </main> <footer> <p>版权所有 © 2021 进击的巨人官网</p> </footer> <script src="script.js"></script> </body> </html> ``` 接下来,我们需要添加样式表来为网添加样式。您可以在 `style.css` 文件中添加以下样式: ```css /* 全局样式 */ body { margin: 0; padding: 0; font-family: Arial, sans-serif; } /* 头部样式 */ header { background-color: #1A1A1A; color: #FFFFFF; padding: 20px; } nav ul { margin: 0; padding: 0; list-style: none; display: flex; justify-content: space-between; } nav li { margin: 0 10px; } nav a { color: #FFFFFF; text-decoration: none; } nav a:hover { color: #FFC107; } /* 主要内容样式 */ main { padding: 20px; } .hero { background-image: url('hero.jpg'); background-size: cover; background-position: center; color: #FFFFFF; padding: 50px; } .villain { background-image: url('villain.jpg'); background-size: cover; background-position: center; color: #FFFFFF; padding: 50px; } .supporting-characters { background-color: #F5F5F5; padding: 20px; } /* 页脚样式 */ footer { background-color: #1A1A1A; color: #FFFFFF; padding: 20px; text-align: center; } /* 响应式样式 */ @media (max-width: 768px) { header { padding: 10px; } nav ul { flex-direction: column; align-items: center; } nav li { margin: 10px 0; } .hero, .villain { padding: 20px; } } ``` 最后,我们需要添加 JavaScript 代码来为网添加交互性。以下是一个简单的示例,当用户单击页脚时将显示一个警告框: ```javascript // JavaScript 代码 const footer = document.querySelector('footer'); footer.addEventListener('click', function() { alert('进击的巨人官网,版权所有!'); }); ``` 这就是使用 CSS、HTML 和 JavaScript 开发一个响应式的进击的巨人的基本步骤。当然,还有很多其他的设计和功能可以添加,但这应该足以让您开始构建自己的网了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值