关于windows服务方面的一些问题

这篇博客介绍了如何使用Visual Studio 2010创建和配置Windows Service,包括设置定时任务、服务启动和停止方法、安装程序的创建以及在不同系统版本上的部署。文章详细讲解了服务描述、显示名称、服务名和启动类型等关键属性,并提供了在服务器上安装和卸载服务的命令行操作步骤。
摘要由CSDN通过智能技术生成

最近需要用到windows service,因为客户有一个电子显示屏需要动态显示一些信息。

在服务器上安装一个windos service,定时读取数据库的内容,生成相应格式的xml文件,在指定的目录中。

因为自己一直在做web方面的东西,所以稍微研究了下这个需要怎么做,百度上也有很多资料可查,最后弄好了。

下面把实现的过程备份下,留待参考。

首先用vs2010新建一个windows service的项目,项目名字嘛自己取一个就好。

项目建好后,会有一个Service1.cs的文件,作为服务是不需要界面的,所以点击单击此处切换到代码视图

切换到代码部分。

 protected override void OnStart(string[] args)

这个服务启动会执行的方法。

  protected override void OnStop()

是服务停止时会执行的方法。

根据自己的需要在里面添加需要的代码就行。

在OnStart里面添加

System.Timers.Timer t = new System.Timers.Timer(1000 * 60 * 5); //这里的间隔是5分钟执行一个
t.Elapsed += new System.Timers.ElapsedEventHandler(DoCheck); //到达时间的时候执行事件;   
t.AutoReset = true;   //设置是执行一次(false)还是一直执行(true);   
t.Enabled = true;     //是否执行System.Timers.Timer.Elapsed事件; 

//这个方法里是具体实现的代码 

public void DoCheckt(object source, System.Timers.ElapsedEventArgs e)
 {

   //your code

}

 

这样一个windows service已经完成了。下面需要设置后在服务器上安装。

在Service1.cs界面,右键添加安装程序

这是会添加一个ProjectInstaller,cs文件,点开

serciceInstaller1 右键属性。

Description 是你的服务描述

DisplayName 是服务显示名称

ServiceName 是服务名,修改为你需要的名字,生成相应名字的exe文件

StartType 修改为 Automatic ,自动启动

这4个属性是你需要设置的。

serciceProcessInstaller1右键属性

Account 设置为 LocalSystem

可以生成了吗?还没有,需要检查下服务器的系统版本。

如果服务器的windows系统版本室32位的,右键项目名-》属性,在生成这里 目标为x86

如果服务器windows系统版本室64位的,需要改为 AnyCpu

因为我开发所用电脑为64位系统,这里需要根据需求自行设置好。

下面就是生成了,生成后在bin目录下的Debug目录下可以找到刚才生成的文件,把相应的文件拷贝至服务器上。单独目录存放。


下面需要在服务商安装注册这个服务。

如果服务器室win7之类的版本,需要在 c:\windows\System32目录下选择 管理员方式运行 cmd.exe

然后进入目录 c:\windows\Microsoft.Net\Framework\v4.0.30319

根据服务版本的不同,可能需要进入的framework64这个目录

然后执行 installutil 你刚拷贝的exe文件的具体目录

比如 installutil d:\MyService\MyService.exe 回车

这样服务就注册好了。

需要卸载服务的命令为  installutil /u d:\MyService\MyService.exe 

中间多了一个/u。

服务安装好了,但是还没有启动,下面通过 管理->服务,找到你刚才注册的服务,把它启动起来。下面就可以按效果了。

如果需要调试的话,最好服务先安装在本机,注册,启动后,在vs里面选择调试->附加到进程,在你的代码里面打上断点 就可以了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值