Window Service 计划任务
在ASP.NET中创建计划任务,就我个人而言,用过两种方式,一种是用SQL Server创建,把写好的SSIS包导入SQL Server创建的任务中,设置好时间让它去执行。还有一种就是利用window 服务。接下来我将讲述如何用window service 去创建计划任务,让它在我们设定的时间内执行。
1.新建项目,然后选择Windows服务。如下:
2.右键空白处,选择“添加安装程序”。
3.右键 serviceProcessInstaller1,选择属性,将Account的值改为LocalSystem。目的是为了保证无论哪个用户使用这台电脑都能启动服务。
4.打开 Service1.cs设计界面,从工具箱里面拖一个timer控件进来,检查我们的程序是否到了执行时间了。
5.右键timer,选择属性,切换到事件,给timer控件绑定一个tick事件.
6.添加一个 Scheduler.cs(自己命名) 里面写入我们需要执行的逻辑代码。对于作业通常会需要设置执行时间,执行的周期,比如星期一到星期五,哪几天执行,几点钟执行等。我们可以建立相关表,存储设置的执行时间和周期,然后在代码里去判断时间是否符合,如果符合就继续执行。当然在这里我为了举例方便,就只写一个很简单的方法。
namespace WindowsServiceDemo { class Scheduler { static void Record() { using (System.IO.StreamWriter sw = new System.IO.StreamWriter("E:\\log.txt", true)) {
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss "));
} } }
}
7.在Service1.cs里面去调用
namespace WindowsServiceDemo {
public partial class Service1 : ServiceBase {
public Service1() {
InitializeComponent();
} protected override void OnStart(string[] args) { timer1.Enabled = true;
timer1.Start(); timer1_Tick(timer1, null);
} protected override void OnStop() {
timer1.Stop();
} private void timer1_Tick(object sender, EventArgs e) { Scheduler.Record(); } }
}
8.安装window 服务
1)安装脚本Install.bat
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe WindowsServiceDemo.exe
Net Start Service1
sc config Service1 start= auto
2)卸载脚本Uninstall.bat
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u WindowsServiceDemo.exe
把这两个脚本和最后生成的作业放在同一目录,然后运行Install.bat。这时,我们打开服务管理界面,可以看到我们安装的服务。
然后再打开E盘,可以看到record方法执行成功。
代码下载:https://github.com/Aulanto/window-service-scheduler.git
Window Service 计划任务的更多相关文章
- C# window service的创建
其实我也是第一次在博客园写博客,看到那些高手说自己要多动手写博客,于是乎自己也尝试尝试. 废话不多说.这几天在研究window service,通过查找各种大神写的博客,我终于成功的自己写出来了. 下 ...
- 创建 window service 定时任务
参考文章:http://www.cnblogs.com/jack-liang/archive/2011/05/20/2051743.html 前段时间做过一个项目,前端系统提供添加定时任务,后端系统要 ...
- window service 开发
为了便于window service的调试和开发. 我整理了一下代码,方便大家查阅 App.config 设置启动时间 timerStart-10点 interval-3600000 1小时检查一次 ...
- C# window Service实现调用有UI的应用程序(关于win xp以后的window系统)
我开发的系统中有一接口程序(这里就称Task,是一个C#的Console Application)经常无故的死掉,导致第二天的数据不能正常解析,所以,我写了一个window service去监视Tas ...
- RabbitMQ.NET In Window Service
工作中要求使用RabbitMQ,以Windows Service 模式启动,中间有遇到一些问题,网上大部分博客有误导倾向, 在这里做一个简单的记录,以免后面的人走坑: 1. 自动重新连接,不需要手动处 ...
- window service 创建
1:vs中创建一个 window servece 2.右键 添加安装程序 3.更改属性视图中的Account属性为LocalService(本地服务) 更改ServiceName为你自己的服务名称 ...
- streambase service 变为 window service启动
1.配置出.sbdeploy文件 2.安装streambase服务 streambase command line :--install-service 即可安装对应的的window service ...
- 【Window Service】关于Window Service的两三事
引言 Window Service通常用于寄宿WCF服务或者定时作业.下面记录一下它的用法. 创建 创建Window Service项目后,可以看到Program和Service1类.Program ...
- C# Window Service安装、卸载、恢复选项操作
using System;using System.Diagnostics;using System.Linq;using System.ServiceProcess; namespace ScmWr ...
随机推荐
- linq 分组求和
static void Main() { DataTable dt = new DataTable(); dt.Columns.Add( ...
- 基于Http替补新闻WebService数据交换
该系统的工作之间的相互作用.随着信息化建设的发展,而业界SOA了解并带来低TOC(总拥有成本)其他优势.越来越多的高层次的信息使用者关注. 这里暂且不提SOA这种架构规划.在系统间集成协议简单的讨论. ...
- Linq的理论知识
概述 前面的博客中写到过关于Linq的一些知识,可是,没有具体的说Linq,本篇博客将会说一下Linq. 什么是Linq Linq是一个概念,它实现了数据查询使用同一方式,即,它使我们程序猿通过使用它 ...
- c++ Constructor FAQ 继续
这一章的时候,才明白什么是编译器的声明只会是一个默认的构造.这也解释了为什么同一似乎没有意义的界定,如果不还声明默认构造函数的意义. Q:当编译器隐含定义了一个默认的构造函数. 答: 一个隐式声明的默 ...
- asp.net读取CSV
原文:asp.net读取CSV 用Excel导了两天数据,各种问题,折磨客户也折磨了自己,以前没发现的问题一下子都暴露出来了 特意收集两篇Excel跟CSV读取相关的两篇文章 asp.net读取exc ...
- [Unity-7] Update和FixedUpdate
1.Update和FixedUpdate这是Unity既用内提供的帧功能接口相关联. Update():这个函数里面的内容每一帧都会被运行一次.这个函数有一个特点,那就是运行的频率等于帧率.而这个帧率 ...
- 在ubuntu下把php的网页调试功能打开
我这儿的环境是 Ubuntu 14.04 + Lighttpd + PHP5.5 默认情况下php的网页调试功能是不打开的,当PHP解析到一个错误的语法时会直接输出为空白. 我在网上找一许多文章,说 ...
- .Net下简单地实现MD5加密
在.Net中为我们提供了一个方法HashPasswordForStoringInConfigFile,可以简单方便地实现MD5加密.该方法位于System.Web命名空间下,所以需要在引用中添加Sys ...
- JDK6、Oracle11g、Weblogic10 For Linux64Bit安装部署说明
JDK6.Oracle11g.Weblogic10 For Linux64Bit安装部署说明 项目编号 编写人 成 编写日期 2013/07/29 审核 修订说明 目录 JDK6.ORACLE11G. ...
- Scala + Play + Sbt + Protractor
Scala + Play + Sbt + Protractor = One Build 欢迎关注我的新博客地址:http://cuipengfei.me/ 我所在的项目的技术栈选用的是Play fra ...