用 vs 2017创建 windows 服务
创建项目
创建项目,在Windows下选择Windows服务(.NET Framework)。创建名称为indowsService_Test,如下图。
系统默认创建Service1.cs。
打开Serice1.cs的属性页,将ServiceName修改为ServiceTest,如下图:
添加定时器
在vs 主菜单中选“工具”项,再选“选择工具箱项”,再勾选命名空间为System.Timers的Timer,如下图:
现在在工具箱中可以看到Timer组件如下图所示。
将其拖入至Service1设计界面。将timer1的enabled 属性设置为true,Interval属性设置为1000。
双击timer1,自动生成timer1_Elapsed事件。
添加业务代码
编辑Service1.cs,引入 System.Threading命名空间并修改代码如下:
public partial classService1 :ServiceBase
{
privateThread thdStart;
privateint numTimes;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
thdStart = newThread(newThreadStart(timer1.Start));
thdStart.Start();
}
protectedoverridevoid OnStop()
{
}
privatevoid timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
this.timer1.Stop();
numTimes++;
string filePath =@"c:\ServiceTest.log";
string strCont =DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") +"第" + numTimes +"次执行。";
System.IO.File.AppendAllText(filePath, strCont);
this.timer1.Start();
}
}
另一套方法也可行且更简洁,如下:
protected override void OnStart(string[] args)
{
timer1.Start();
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
timer1.Enabled = false; ;
Serv.Start();
timer1.Enabled = true; ;
}
这里把所要执行的方法写在自定义的Serv类里,这样我们可以在项目中增加一个Form,在Form中添加一个System.windows.Forms.Timer时钟,并设置如下代码:
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
Serv.Start();
timer1.Enabled = true;
}
再将program.cs的main方法改为
static void Main()
{
//ServiceBase[] ServicesToRun;
//ServicesToRun = new ServiceBase[]
//{
// new Service1()
//};
//ServiceBase.Run(ServicesToRun);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
这时就可以执行程序来调试Serv类里的方法了。调试正确后,将再将program.cs的main方法改回来即可。
为WindowsService_Test添加安装程序
在Service1设计界面下,右键弹出菜单,选择“添加安装程序”
在serviceProcessInstaller1属性页中将Account由User改为LocalSystem,
生成服务
生成项目。
新建一个目录,将项目的\bin\Debug目录下生成的所有文件拷贝到该新的目录,再在该目录下建两个批出处理文件,文件名可分别为install.bat和uninstall.bat,内容分别如下:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe /i WindowsService_Test.exe
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe /u WindowsService_Testr.exe
注意:如果由于某种原因而使生成的平台目标设为x86,则命令中的framework64要改成framework.
部署和卸载服务
以部署到windows server 2008服务器为例,先须安装NDP462-KB3151800-x86-x64-AllOS-ENU.exe即.netframework 4.6.2,如果在内网环境下安装.net4.6.2,则需要安装
MicrosoftRootCertificateAuthority2011.cer证书。安装此证书的过程大楖如下:
1.下载证书:http://go.microsoft.com/fwlink/?LinkID=747875&clcid=0x409;
2.开始-运行-MMC
3.文件-删除管理单元(Ctrl+M)
4.证书-计算机帐户(其他的保持默认,无限下一步)。
5.回到窗体,展开:证书-受信任的根证书颁发机构-证书。
6.右击展开菜单,所有任务-导入
7.选择下载好的cer文件,然后无限下一步。
NDP462-KB3151800-x86-x64-AllOS-ENU.exe安装完毕后(部署到windows server 2016上时不需安装.net4.6.2这个此步骤),将上述的文件夹拷贝到服务器的磁盘上,双击运行其中的install.bat即可完成安装,也可在命令窗口中执行install.bat进行安装,但必须用管理身份打开命令窗口。然后再打开管理工具-服务,找到WindowsService_Test项,双击后点“启动”即可启动服务,往后服务启动时会自动启动该服务。
要卸载服务,只需要运行上述已经拷贝到服务器的磁盘中的文件夹内的uninstall.bat文件即可。
用 vs 2017创建 windows 服务相关推荐
- 用.NET创建Windows服务
用.NET创建Windows服务 译者说明:我是通过翻译来学习C#的,文中涉及到的有Visual Studio.NET有关操作,我都根据中文版的VS.NET显示信息来处理的,可以让大家不致有误解. 作 ...
- 用C#创建Windows服务(Windows Services)
转载自 hyslove 最终编辑 hyslove Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是 ...
- 杂记2:VS2013创建Windows服务实现自动发送邮件
这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务 ...
- C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案
C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 参考文章: (1)C#/.NET基于Topshelf创建Windows ...
- (转)创建Windows服务(Windows Services)N种方式总结
转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...
- *用C#创建Windows服务(Windows Services)
Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是一件困难的事,本文就将指导你一步一步创建一个Win ...
- 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
在64位windows下使用instsrv.exe和srvany.exe创建windows服务 在32位的windows下,包括windows7,windows xp以及windows 2003,都可 ...
- C# — 创建Windows服务
以前从来没有接触过C#,对Windows服务也完全不了解,今天通过使用VS2017创建了一个Windows服务,并进行了安装和卸载,目前也是一知半解的地步,简单的做个笔记记录一下,也算是复习了吧. 第 ...
- python windows服务_Python创建Windows服务
首先让我们开始安装Python for Windows扩展: c:test>pip install pywin32 完成后,让我们编写该基类,您的Windows服务将是该基类的子类. ''' S ...
最新文章
- 资料分享:送你一本《数据结构(C#语言版)》电子书!
- JS 使用html2canvas实现截图功能的问题记录和解决方案
- php等待程序时间,php页面程序运行需要时间,怎么给客户提示?
- APUE读书笔记-12线程控制-04同步属性
- 第六届 蓝桥杯 省赛 Java B组 牌型总数
- number two
- CCNA-第十五篇-DHCP配置+SDN介绍(最后一章)
- 前两年在MSDN里找到的HTC示例,一直没用过,先在这里存个备份
- 2013年度开源社区年会,3W咖啡免费让你更多接触开源
- linux下编译webkit,ubuntu下编译webkit
- ASP.NET判断是否为手机登录
- mybatis分页插件_MyBatis 分页插件 5.2.0 发布
- 《Greenplum5.0 最佳实践》 系统监控与维护 (五)
- json文件内容+csv保存文件[Python]
- 《高等代数学》(姚慕生),习题1.1:二阶行列式
- iPhone屏幕尺寸
- 采购经理人指数(PMI)
- 点量云流化技术在云游戏和虚拟仿真教学中有啥优势?
- c语言26字母排序,C语言,26个字母的冒泡排序
- LiteOS学习笔记-9LiteOS SDK oc流程之MQTT
热门文章
- python基础教程视频纸飞机_蜗牛笔记-文章-全年专题直播课四月课表正式上线!​...
- 闪存Nand Flash存储结构浅析
- 【vscode高级玩家】设置酷炫字体Fira Code
- CATIA和SOLIDWORKS哪款软件更好学?
- 如何使用 jQuery 刷新页面?
- bzoj3252攻略(线段树+dfs序)
- 关于缺少msvcp110.dll
- oracle adf 数据validation,ORACLE ADF 问题总结
- c#中关于textbox换行
- 公务员笔试讲义——资料分析3