vs2013 windows 服务

windows 服务

Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。引用百度
当需要创建一个服务程序,定时执行的程式

创建Windows服务

在这里插入图片描述

Windows服务注意事项

在server的页面添加按钮,计时器都不可以直接引用
在这里插入图片描述
需要调用计时器,必须实例化一个timer对象(无法使用设计页面上的timer控件)

 protected override void OnStart(string[] args)
        {
            //写入启动log
            LogHelper.WriteLog("service start");
            //实例化Timer类,设置间隔时间为5min; 
            System.Timers.Timer timer2 = new System.Timers.Timer(30000);
            LogHelper.WriteLog("计时器开始工作:");
            //到时间的时候执行事件; 
            timer2.Elapsed += new System.Timers.ElapsedEventHandler(OrderTimer_Tick);
            //设置是执行一次(false)还是一直执行(true); 
            timer2.AutoReset = true;
            //是否执行System.Timers.Timer.Elapsed事件; 
            timer2.Enabled = true;
            timer2.Start();
            LogHelper.WriteLog("run");

        }

 /// <summary>
        /// timer执行
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        public void OrderTimer_Tick(object source, System.Timers.ElapsedEventArgs e)
        {
            //执行一次记录一次时间
            LogHelper.WriteLog(DateTime.Now.ToString() + "检查良率");
            try
            {
                program.ExecuteCode(url);//执行逻辑
            }
            catch (Exception mess)
            {
                LogHelper.WriteError(mess.Message);
            }
        }

逻辑代码都是一样的。

Windows服务的安装与卸载

 //安装服务
        private void InstallService(string serviceFilePath)
        {
            using (AssemblyInstaller installer = new AssemblyInstaller())
            {
           
                installer.UseNewContext = true;
                installer.Path = serviceFilePath;
                IDictionary savedState = new Hashtable();
                savedState.Add("USER", null);
                installer.Install(savedState);
                installer.Commit(savedState);
            }
        }
 //卸载服务
        private void UninstallService(string serviceFilePath)
        {
            using (AssemblyInstaller installer = new AssemblyInstaller())
            {
                installer.UseNewContext = true;
                installer.Path = serviceFilePath;
                installer.Uninstall(null);
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值