C#常规开发Windows服务
2017-09-20 15:44 huoit 阅读(338) 评论(0) 收藏 举报.Net平台下开发Windows服务的支持库很多,除了通过标准的Windows服务项目,还有一些优秀的开源架构比如:TopSelf;本文以常规项目为例
一、开发
1、新建【Windows服务】 项目:Practice.WinSvc.Normal;可以看到自动新建了一个服务类;点击打开设计界面;设计界面右键可以查看代码界面;

2、新建业务处理类OrderJob.cs
using System; using System.Threading; namespace Practice.WinSvc.Normal { public sealed class OrderJob { private Boolean _IsStop = false; private Thread _Thread; public void Start() { _IsStop = false; _Thread = new Thread(new ThreadStart(StartJob)); } private void StartJob() { while (!_IsStop) { //Do Some thing Thread.Sleep(500); } } public void Stop() { _IsStop = true; } } }
3、打开我们的服务PracticeWinSvcNormalService查看代码,修改:
namespace Practice.WinSvc.Normal { public partial class PracticeWinSvcNormalService : ServiceBase { public PracticeWinSvcNormalService() { InitializeComponent(); } public OrderJob _orderjob = new OrderJob(); protected override void OnStart(string[] args) { _orderjob.Start(); } protected override void OnStop() { _orderjob.Stop(); } } }
4、添加安装程序,在服务设计界面上右键——添加安装程序,会自动添加一个ProjectInstaller里面包含了两个控件设置一些服务的属性 ;至此一个完整的服务开发完成

StartType设置手动、自动等等;ServiceName:设置服务的名称;

namespace Practice.WinSvc.Normal { [RunInstaller(true)] public partial class ProjectInstaller : System.Configuration.Install.Installer { public ProjectInstaller() { InitializeComponent(); } } }
二、安装
1、方法:命令行
开发完成后编译Debug版本;安装要使用一个.Net Framework自带的工具InstallUtil.exe;使用.Net4.0的工具

输入命令:
InstallUtil.exe D:\Practice\Practice.WindowsSvc\bin\Debug\Practice.WindowsSvc.exe
卸载
InstallUtil.exe \u D:\Practice\Practice.WindowsSvc\bin\Debug\Practice.WindowsSvc.exe
也可以重新定义服务的名字
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe "MyServer.exe" -service /serviceName:"myServer-v1"
调试的时候附加到进程就可以了;
2、添加VS外部工具
这个看个人习惯,添加进去方便直接在vs就执行安装;免去命令行的麻烦;直接编译过项目,点击工具——我们设置的名称就可以安装;

1、如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
2、欢迎各位转载,但是未经作者本人同意,转载文章请在文章页面明显位置标明作者和原文连接,否则保留追究法律责任的权利。
作者博客: http://www.cnblogs.com/xmai/
浙公网安备 33010602011771号