分享
 
 
 

.net开发windows服务小结

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: |||超大  

.net开发windows服务小结 今天学习了在.net下创建一个windows服务,总结一下学习心得。 开发环境:visual studio 2012一、编写程序(1)创建一个空解决方法(2)添加一个控制台应用程序项目(3)添加一个Windows服务,如下所示:(4)右键 查看代码看到如下代码:public WindowsService(){ InitializeComponent();}PRotected override void OnStart(string[] args){ }protected override void OnStop(){ }

其中,OnStart方法在启动服务时执行;OnStop方法在停止服务时执行;还有两个重载方法:OnPause、OnContinue,分别在暂停服务时执行、恢复服务时执行;它们对应于下图所示的操作:

(5)添加代码:

private Thread timerThread;/// <summary>/// 启动服务时执行/// </summary>/// <param name="args"></param>protected override void OnStart(string[] args){ File.AppendAllText("D:\\1.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":windows服务开始工作!\r\n", Encoding.Default); timerThread = new Thread(new ThreadStart(Start)); timerThread.Start();}/// <summary>/// 停止服务时执行/// </summary>protected override void OnStop(){ timerThread.Abort(); File.AppendAllText("D:\\1.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":windows服务结束工作!", Encoding.Default);}private void Start(){ while (true) { using (StreamWriter writer = new StreamWriter("D:\\1.txt",true,Encoding.Default)) { writer.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":每十秒钟输出一次!"); } Thread.Sleep(10 * 1000); }}

(6)安装程序,设置属性

在设计器中添加安装程序

会生成一个ProjectInstaller.cs文件,如下图所示:

然后需要做两件事情:

①设置serviceProcessInstaller1控件的Account属性为“LocalSystem”

②设置serviceInstaller1组件的StartType属性为Automatic,把服务设置为自动启动

(7)启动服务

打开vs的开发人员命令提示 工具 以管理员身份运行

执行如下所示命令:

①进入到项目所在文件夹,并进入\bin\Debug\路径下

②安装服务命令:installutilConsoleapplication.exe,然后就可以在服务列表中看到我们启动的服务:

卸载服务的命令是:installutil /uConsoleApplication.exe

当我们修改代码后,需要把服务先卸载,才能重新生成成功

③启动服务

启动服务后,等一会儿再停止服务,然后我们打开D盘下的1.txt文档,可以看到下图所示的结果:

二、调试

在服务运行的状态下,我们找到菜单栏,调试——>附加到进程

注意勾选“显示所有用户的进程”,选项,找到我们的进程,点击附加,然后在程序中添加断点,就可以调试程序了!

另:昨天又尝试把windows服务部署在另外一台没有安装virtual studio的机器上,没有了vs的开发人员命令提示,又查阅了半天资料,才找到解决办法,再次贴出来供以后查阅:

主要是使用sc命令,sc是用于与服务控制管理器和服务进行通信的命令行程序。

关于sc命令的详细说明,我还没有详细了解,目前只会使用创建、删除命令;SC命令的更多用法请在cmd命令提示符中执行help sc 查看

创建服务<将其添加到注册表>,示例:sc create MsgService binpath= "F:\Message Service\Service.exe" displayname= "短信服务" start= auto

其含义表示创建一个名为MsgService的服务;地址为F:\Message Service\Service.exe,这个地址指向可执行程序;显示的名字为“短信服务”;自动启动

<从注册表>删除服务,示例:sc delete MsgService

知道使用什么命令了,但是都需要把什么文件部署到另外一个计算机呢?

不需要右键发布项目,只需要把工程目录bin\Debug\下的所有文件拷贝到服务器上即可,如下图所示:

然后进入服务列表,启动服务即可

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有