windows服务定时任务
其实定时任务时不时会碰到,只不过解决方案也不是只有一个,网上也有很多文章,但是没有一篇说得很清楚,尤其是安装环节,今天就着重说一下安装,
其他步骤带过,C#开发windows服务,开发,安装,调试
1. 添加安装程序 (找的其他博客的配图)
之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。
2)修改安装服务名
右键serviceInsraller1,选择属性,将ServiceName的值改为ServiceTest。
3)修改安装权限
右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。
2.业务代码(读取配置文件里面的所有节点,然后开启多个定时任务)app.config配置如下:

protected override void OnStart(string[] args)
{ NameValueCollection urls = ConfigurationManager.AppSettings; List<Timer> timers = new List<Timer> ();
int i =;
foreach (var item in urls)
{
try
{
string values = urls["url" + i];
string[] strs = values.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
string url = strs[];
int interval = Convert.ToInt32(strs[]);
Timer temp = new Timer();
temp.AutoReset = true;
temp.Interval = interval;
temp.Enabled = true;
temp.Elapsed += new ElapsedEventHandler((object sender, System.Timers.ElapsedEventArgs e) =>
{
try
{
Http.Get(url);
}
catch (Exception ex)
{
Log.LogResult(ex.StackTrace);
} });
temp.Start(); timers.Add(temp);
}
catch (Exception ex)
{ Log.LogResult("创建timer失败:"+ex.StackTrace);
}
i++;
}
}
3. 安装
如果项目是4.0的,那么要去 C:\Windows\Microsoft.NET\Framework\v4.0.30319 (V4.0开头的就行) 路径下面找到 InstallUtil.exe
项目如果是2.0的,那么找 C:\Windows\Microsoft.NET\Framework\v2.0.50727 (v2.0 开头就行) 路径下面找到 InstallUtil.exe
要将服务安装到哪台机就要去哪台机里面找,没有框架就装框架,如果复制本地的文件到远程服务器使用是不行的,微软有安全验证
将文件installUtil.exe 复制到 Debug目录下面
准备工作做好,开始安装: 以管理员身份打开cmd,然后进到Debug目录里面,先试试installutil.exe 有没有用

出现类似页面就说明有用,
执行命令 installutil serviceTest.exe(服务对应程序名称debug下面的 .exe )
如果出现安装成功字眼,并且没有出现错误字眼,说明服务安装成功
然后去服务里面找到这个服务

4.调试 (调试 => 附加到进程 )
windows服务无法直接运行调试,跟着步骤来: 启动服务才能附加进程调试

如果勾都打上了还找不到,就关闭这个窗口稍微等等再来一次,准能找到
然后就可以愉快的加断点调试了

如果改了代码,需要先停止服务 ,然后重新生成项目,再启动,然后重新附加进程
windows服务定时任务的更多相关文章
- 可视化Windows服务定时任务
思路:1.新建一个<Windows服务项目>,在里面建服务文件(可以多个),用来做要执行的任务. 2.新建一个<Windows窗体应用程序>,在这个程序里管理服务.如:安装.卸 ...
- windows服务 定时任务
1.c#程序做成windows服务 若用cmd安装: var path = Process.GetCurrentProcess().MainModule.FileName + " s&quo ...
- Windows服务中用Timer和线程两种方式来执行定时任务
在Service服务文件夹下新建Windows服务 - TestService
- 定时任务-C#线程类 windows服务
原理 最常用的就是C#中 timer类写一个定时方法,然后在把他宿主到windows服务里面. C#中Timer分类 关于C# Timer类 在C#里关于定时器类就有3个 C# Timer使用的方法 ...
- 不用写Windows服务实现定时器功能(FluentScheduler )
MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自 ...
- C#实现对Windows 服务安装
Windows服务作用:定时用户消息推送,WEB程序实时统计等 Windows服务创建:C#创建服务的方式也有很多种,建议大家在做之前可以先全面了解一下这方面东西再去动手这样便于解决中间遇到一些比较棘 ...
- Quartz.Net在windows服务中的使用
写在前面 这几天在弄一个项目,需要定时抓取一些数据,当时也想直接用timer算了.因为之前也弄过这样的项目,但是一想,已经用过了,再去使用同一种思路,未免太乏味了.就换了一种新玩法.这里将之前看到的一 ...
- 使用Topshelf组件构建简单的Windows服务
很多时候都在讨论是否需要了解一个组件或者一个语言的底层原理这个问题,其实我个人觉得,对于这个问题,每个人都有自己的看法,个人情况不同,选择的方式也就会不同了.我个人觉得无论学习什么,都应该尝试着去了解 ...
- 使用NSSM把.Net Core部署至 Windows 服务
为什么部署至Windows Services 在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.net Core就更少了.一般情况下,Asp.net Core会部署 ...
随机推荐
- angular Observable
1.回调函数 /** 1.设计实现函数 */ print_msg(msg) { console.log(msg); } /** 2.设计调用函数,param1:实现函数参数,param2:实现函数本身 ...
- selenium启动报错“ incorrect JSON status mapping for 'unknown error' (500 expected)”
前面讲了工程启动报错“selenium启动报错Unable to read VR Path Registry from C:\Users\clinva\AppData\Local\openvr\ope ...
- 记录一下这几天遇到的坑(.netcore 代理问题)
1.通过图片的网络url将图片转化为base64格式 方法如下: public static async Task<string> GetImageAsBase64Url(string u ...
- MySQL 的安装与使用(一)
一.Windows 上安装 MySQL 1.Windows 上安装 MySQL 相对来说会较为简单,地那就链接 https://cdn.mysql.com//Downloads/MySQL-8.0/m ...
- Modbus协议栈实现Modbus RTU多主站支持
前面我们已经详细讲解过Modbus协议栈的开发过程,并且利用协议栈封装了Modbus RTU主站和从站,Modbus TCP服务器与客户端,Modbus ASCII主站与从站应用.但在使用过程中,我们 ...
- matplotlib 中的柱状图
def drawBar(): pyplot.bar(range(5),[100,200,300,400,400]) pyplot.xticks(range(5),['A','B','C','D','E ...
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165323
1.Kali下载路径 由于之前的课程中已经安装过VMware虚拟机,这一个步骤就省去 2.安装 (1)创建新的虚拟机->典型->添加镜像路径 (2)选择操作系统linux (3)进行虚拟机 ...
- vs2017 EFCore 迁移数据库命令
项目结构: 首先引用 Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.Design 增加类DesignTimeDbC ...
- [转] iphoneX、iphoneXS、iphoneXSMax、iphoneXR适配
基础知识 1. 关于iphoneX .iphoneXS.iphoneXSMax.iphoneXR机型的大小和像素 机型尺寸 注意:开发人员只需要记住开发尺寸 2. 屏幕组成 齐刘海(44px) + ...
- [转]centos7 安装jdk11 并设置默认java版本
https://www.server-world.info/en/note?os=CentOS_7&p=jdk11&f=2 OpenJDK 11 : Install 2018/10/1 ...