网站制作沈阳,做网站需要多少屏,wordpress线下安装教程,网站开发岗位要求首先#xff0c;请原谅我是一个小白#xff0c;一直到前段时间才在工作需要的情况下写了第一个windows服务。首先说一下为什么写这个windows服务吧#xff0c;也就是什么需求要我来写这么一个东西。公司的项目中#xff0c;需要一个预警功能#xff08;从数据库里取出需要… 首先请原谅我是一个小白一直到前段时间才在工作需要的情况下写了第一个windows服务。首先说一下为什么写这个windows服务吧也就是什么需求要我来写这么一个东西。公司的项目中需要一个预警功能从数据库里取出需要的日期在这个日期的前两天向相应的用户以短信的形式发出提醒。因为不是一个日期并且日期不是固定的。所以需要每一天都要在规定的时间向服务器发出请求这需要后台自动执行的事件。我一直觉得这种功能很牛X的就因为它们是自动执行的哈哈。最后就用到了这么这个没有写过的windows服务。其实前面在做这个项目的时候也遇到了类似的事情小区居民回复物业系统发出的短信比如短信投票需要及时接受并且做出相应的回复或操作。为了解决这个问题我是做了一个定时器放在Global.asax文件里的。但是这中方法有个弊端就是需要启动项目才能让计时器跑起来而Windows Service就完美的解决了这个问题。只要在服务器上启动服务不管项目是否运行服务里的程序依然可以运行。啰啰嗦嗦的也不知道讲清楚没有开始记录新建Windows Service的过程吧。 因为是新建第一个Windows Service所以很艰难一个字——累因为周围的同事、同学因为工作原因基本上都很少接触这个东西。首先百度了方法在这里也详细记录下来请原谅因为我脑袋的内存小怕以后不知道怎么做只能详细的记录了。哦我用的是asp.net。 1.首先创建一个空的解决方案主要是记录windows服务所以asp.net里面什么也没有操作 2.新建windows服务 3.在windows服务内编写程序首先切换到Service1的代码视图从代码中两个程序已经自动生成的两个方法名字可以看出OnStart()为开始OnStop()为结束。其实还有暂停OnPause()继续OnContinue()两个方法。 1 namespace WindowsService2 {3 public partial class Service1 : ServiceBase4 {5 public Service1()6 {7 InitializeComponent();8 }9
10 //启动服务时执行
11 protected override void OnStart(string[] args)
12 {
13 }
14 //停止服务时执行
15 protected override void OnStop()
16 {
17 }
18 }
19 } 我把我的代码贴出来吧 1 namespace WinService2 {3 public partial class Service1 : ServiceBase4 {5 public Service1()6 {7 InitializeComponent();8 }9
10 System.Timers.Timer timer new System.Timers.Timer();
11 common com new common();
12 SMS sms new SMS();
13 protected override void OnStart(string[] args)
14 {
15 timer.Enabled true;
16 timer.Interval 60000;//执行间隔时间,单位为毫秒 每分钟执行一次
17 timer.Start();
18 timer.Elapsed new System.Timers.ElapsedEventHandler(Timer1_Elapsed);
19 }
20
21 protected override void OnStop()
22 {
23 timer.Enabled false;
24 }
25
26 private void Timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
27 {
28 int intHour e.SignalTime.Hour; //获得当前的小时
29 int intMinute e.SignalTime.Minute; //获得当前的分钟
30 int intSecond e.SignalTime.Second; //获得当前的秒
31
32 /*每分钟执行一次*/
33 //更新投票结束状态
34 com.updateVoteState();
35 //短信
36 sms.SMSVote();
37 /*每分钟执行一次*/
38
39 // 每天的1030执行这个方法
40 int iHour 10;
41 int iMinute 30;
42 if (intHour iHour intMinute iMinute )
43 {
44 //预警功能
45 com.Warning();
46 }
47 }
48
49 }
50 } 我在服务里面放了每分钟执行的方法有每天只需的方法。 4.要实现的功能都写好了下面是添加服务的安装程序了。首先添加 在工具箱中找到serviceProcessInstaller和serviceInstaller并添加到Installer.cs中 设置serviceInstaller 设置serviceProcessInstaller 5.前的都做好了服务基本上就完成了最后一步就是注册了。前边的在网上的各位大神的帮助下很顺利的完成了就是在注册这里把我难到了一直失败一直失败弄到我都没有脾气了。百度新建windows服务大部分后面的注册介绍的方法是这样的。 1打开命令提示 2输入installutil C:\Users\win10\Documents\Visual Studio 2012\Projects\WindowsService\bin\Debug\WindowsService.exe(安装)。 或者是 输入C:\Windows\Microsoft.NET\Framework\v4.0.30319(安装) 这些方法好像在win7上可以安装成功可是我安装的是win10的就悲催了怎么都不能实现。最后还是一个同学做过告诉了我一种方法 1以管理员身份运行命令提示 2输入sc create test binPathC:\Users\win10\Documents\Visual Studio 2012\Projects\WindowsService\bin\Debug\WindowsService.exe(注册 sc start test(启动 sc start test (启动服务) sc stop test (停止服务) sc delete test (从注册表删除服务 另外服务的名称不知道是不是必须是解决方面的名字哦我用其它的好像都不行没有认真的去试这个。不知道为什么百度新建windows服务是就是没有找到这种注册服务的方法百度sc create是就都出现了所以在注册这里把弄的很狼狈。 下面这样一段是我在百度百科上看到的可以参考一下 Sc create 是Windows DOS命令用于创建Windows服务。适用于:Windows 7,Windows Server 2003,Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2,Windows Server 2008, Windows Server 2008 R2,Windows Vista。 转载于:https://www.cnblogs.com/chen0901/p/5529133.html