首页 > C# 写Windows服务

C# 写Windows服务

      服务是一个运行在后台的程序,他没有界面,不能交互,只能孤独的独自运行。

  在开始->运行->输入services.msc可以打开服务管理器,这里可以查看和管理服务  

  很多时候都会用到服务,因为服务简化了我们的操作,省去了很多人力,最近公司需要同步数据,我也自己写了个服务,这里把服务的主要程序贴出来,给大家参考,也方便以后自己查阅。

ContractedBlock.gifExpandedBlockStart.gifC#服务程序
protected override void OnStart(string[] args)

{

//启动timer

//period = ServiceSettings.Default.ServiceTimerIntervalSecond * 1000;

// period = Convert.toint * period;//

serviceTimer = new Timer(new TimerCallback(TimerCallback), state, 0, period);





}



protected override void OnStop()

{

//停止计时器

EndThing();

serviceTimer.Change(Timeout.Infinite, Timeout.Infinite);

}



protected override void OnContinue()

{

//重新开始计时

serviceTimer.Change(0, period);



}



protected override void OnPause()

{

//停止计时器

EndThing();

serviceTimer.Change(Timeout.Infinite, Timeout.Infinite);



}



public void TimerCallback(object obj)

{

//隔一段时间调用一次

DoThing();

}

  serviceTimer = new Timer(new TimerCallback(TimerCallback), state, 0, period);

此处,state用于保存状态,如果不需要,保存状态,可以传入null。第三个参数0表示立即调用TimerCallback方法,如果不需要立即调用,可以传入period。period是计时器的计时间隔,单位为毫秒。

  服务写好后,还得配置,以方便安装

  因此,首先转到设计视图中,并选择属性窗口(可以按下F4)。

  把CanStop和CanShutdown设置为true。在安装之前,我们必须要安装一个安装程序。

  右击设计视图窗口,然后选择"Add Installer"。然后,它将显示ProjectInstaller.cs。在这个文件中,serviceInstaller1和serviceProcessInstaller1都存在。转到serviceProcessInstaller1属性处:

  · 把Account设置为LocalSystem。

  · 然后,转到serviceInstaller1属性处。

  · 把DisplayName和ServiceName设置为Monitoring。

  · 设置启动类型(StartType)为automatic。

      服务写好了,还需要注册,不然不会运行,方法如下:C:WINDOWSMicrosoft.NETFrameworkv2.0.50727installutil  Path

  方法卸载的方法:C:WINDOWSMicrosoft.NETFrameworkv2.0.50727installutil -u Path

  本人长期代人写DEMO,功能点DEMO、入门教程等,如果有需要的可以联系我

转载于:https://www.cnblogs.com/_fyz/archive/2010/10/29/1864378.html

更多相关:

  • 这周本来是要写一篇Dubbo源码分析的,被突发事件耽搁了,下周有时间再补上。这周,笔者经历了一次服务雪崩。服务雪崩,听到这个词就能想到问题的严重性。是的,整个项目,整条业务线都挂了,从该业务线延伸出来的下游业务线也跟着凉了。笔者是连续三天两夜的忙着处理问题,加起来睡眠时间不足5小时,今天才得以睡个好觉。但事故之后还有很多问题等着去...

  •     由于工作中需要直接从MySQL后台读取数据,所以安装了PHPnow,装的过程中提示Apache安装失败,80端口被占用。     在cmd中输入netstat –ano命令,发现80端口被一个PID为4的服务所占用,打开任务管理器,发现PID为4的进程为系统进程,其描述信息为NT Kernel & System,在服务里面又...

  • Dubbo 2.7 版本增加新特性,新系统开始使用 Dubbo 2.7.1 尝鲜新功能。使用过程中不慎踩到这个版本的 Bug。 系统架构 Spring Boot 2.14-Release + Dubbo 2.7.1 现象 Dubbo 服务者启动成功,正常提供服务,消费者调用偶现失败的情况。错误如下图: 可以看出,主要原因为 ca...

  • 越来越多的软件,开始采用云服务。 云服务只是一个统称,可以分成三大类。 IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务,Software-as-a-service 它们有什么区别呢? IBM 的软件架构师 Albert...

  • Docker最全教程——从理论到实战(六) 原文:Docker最全教程——从理论到实战(六)托管到腾讯云容器服务 托管到腾讯云容器服务,我们的公众号“magiccodes”已经发布了相关的录屏教程,大家可以结合本篇教程一起查阅。 自建还是托管? 在开始之前,我们先来讨论一个问题——是自建容器服务还是托管到云容器服务? 这里...

  • 现在制作个人网页越来越流行,你会发现很多设计师、媒体人、职场人都建立了自己的网站,用来积累粉丝、展示作品、或者找工作。那么不懂技术知识、也没有太多资金的学生,可以建立自己的网站吗?当然也是可以的!其实个人网站建立的原理都差不多,不懂技术的情况下,可以使用自助建站系统,快速生成个人网站。个人网页制作教程如下:进入「上线了」官网,注册账号...

  • 在plugin.config中添加 stats_over_http.so 然后重启服务器,在浏览器中输入下面的地址查询 http://host:port/_stats 这里host是ATS所在的hostname或是ip,port就是侦听http连接的端口,按照配置我这里分别是10.10.110.162和8081 http:/...

  • 改动信息 详情可以查看ceph官网nautilus Dashboard功能 增加的新功能 支持多用户使用SSO的用户验证模式支持审计模式新的登录页,可以展示更多的集群健康指标使用swagger api的rest api文档 增加的新的管理特性 对于OSD的管理(将osd标记为down,out,修改osd的config ,恢复...

  • 1.Proteus中添加组件后双击引脚可以快速生成一个最近的端口。 2.按A调出设置界面 3.在String中写:net=H#,"H"可以换成自定义前缀。count为起始值,increment为增量。 4.依次点击想要编号的引脚。 转载于:https://www.cnblogs.com/viaduct/p/5842429.html...

  • 1.Goto Anything-快速查找(ctrl + P)   输入@+函数名可以快速找到函数输入#+文本可以快速进行文件内文本匹配2.命令模式Ctrl+Shift+P:打开命令面板    Ctrl+P:搜索项目中的文件   Ctrl+W:关闭当前打开文件  Ctrl+Shift+W:关闭所有打开文件 Ctrl+Shift+V:粘贴...