架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 32200|回复: 3

[ASP.NET] C#定时执行任务之Windows服务

[复制链接]
发表于 2019-4-27 17:56:09 | 显示全部楼层 |阅读模式


前言

继上一篇的Windows任务计划程序,本篇将要记录Windows服务的创建。
环境&工具

>Windows10系统

>VS 2017

正文

1:新建一个解决方案,创建一个Windows服务。名称为“WindowsServiceDemo.exe

1.png

1-1.png


2:双击“Service1.cs”文件,在空白处 右击——>选择“添加安装程序”。


2.png

2-1.png


3:在生成的两个组件中,单击 “serviceProcessInstaller1”组件,在属性窗体中,将“Account”账户类型  设置为“LocalSystem”。


3.png


4:在生成的两个组件中,单击 “serviceInstaller1”组件,在属性窗体中,设置对应的属性,然后保存。

4.png


5:右击“Service1.cs”——> 选择“查看代码” 。

5.png

5-1.png


6:在相应的方法中,写入处理逻辑。OnStart() 方法 :指 windows 服务启动时,进入的方法。OnStop():顾名思义,就是该服务停止时,进入的方法。我们可以写一个timer 让该程序定时的去处理逻辑。



6.png


7:创建两个记事本文件,分别命名并修改后缀名为“Install.bat”和“Uninstall.bat”    注意:后缀名是.bat。 粘贴到项目里面。并且把属性改为 “复制到本地”。

8.png

8:刚才我们创建的两个文件是为了安装服务和卸载服务的。现在向这两个文件写入批处理代码并保存。
打开“Install.bat” 文件,写入以下代码
注:“WindowsServiceDemo.exe” 为刚才生成的exe程序。“AServiceTest” 为 在“serviceInstaller1” 组件中,设置的 “ServiceName”。

打开“Uninstall.bat” 文件,写入以下代码


9:F6生成一下。在项目“bin\Debug”目录中。右击“Install.bat”——>选择“以管理员身份运行”。

9.png

服务安装完成后。我们可以看到,“Log.txt”文件,隔10秒写一行数据。
9-1.png

我们可以查看到安装的服务。
运行——>输入 "services.msc" 回车。

9-3.png

现在停止服务。右击“Uninstall.bat”——>选择“以管理员身份运行”。

9-2.png

服务卸载完成后。我们可以看到,“Log.txt”文件,也写入了一行数据。



#Windows服务调试

Windows服务不能直接使用F5启动,F10调试。那么程序要是出现异常怎么调试呐?
1:首先还是使用管理员身份运行“Install.bat”文件,让程序先跑起来。

2:回到VS中,在菜单栏选择 “调试”——>选择“附加到进程”。

2-2-1.png



3:在弹出的窗体中,勾选“显示所有用户的进程”,查找我们生成的.exe应用程序,点击“附加”。

2-3-1.png


4:在方法里面打断点,这样到了一定的时间运行,就能触发调试了。

2-4-1.png

尾声

Windows服务调试很麻烦,有时候程序写的有问题,服务都启动不了,这样就更难调试了。一般写Windows服务会配套写一个控制台应用程序。在控制台应用程序里面调试好,再搬到Windows服务里面.下一篇将会记录更简单的Windows服务的创建方法。


注:那两个程序启动和卸载的批处理文件,一定要用管理员身份运行。不然会报错的。









上一篇:分享大数据常用算法(应用)
下一篇:C#定时执行任务之Topshelf的使用
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-5-8 10:59:16 | 显示全部楼层
多谢分享,正好需要,发发奉上
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-6-22 14:04:33 | 显示全部楼层
QQ截图20200622140332.png 总是报这个错啊
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2020-9-7 15:21:59 | 显示全部楼层

运行的命令不对,这个服务,没有安装上。 如果是敲命令行安装的话,可以参考我下一篇帖子。
C#定时执行任务之Topshelf的使用
https://www.itsvse.com/thread-7503-1-1.html

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-7-4 17:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表