创建windows服务项目

一、创建服务

1、文件-》新建-》项目-》windows桌面-》windows服务,修改你要的项目名称。我这不改名,仍叫WindowsService1,确定。

2、其中的Program.cs文件是入口,Service1.cs是服务文件,所有的逻辑都在这。Service1.cs包含两部分,一部分是Designer,可以在这里面添加各种组件。一部分是后台文件,里面可以写一些逻辑,默认包含3个方法:构造函数、OnStart和OnStop,还可以添加OnPause和OnContinue方法。

3、修改Service1.cs文件如下(可以自行添加一些逻辑代码)

namespace WindowsService1
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
base.ServiceName = "KangryTest"; //设置服务名称,与后面的安装服务名称要一致
} protected override void OnStart(string[] args)
{
//服务启动时相关代码。
} protected override void OnStop()
{
//服务关闭时相关代码。
}
}
}

4、双击Service1.cs文件,进入设计页面,对着空白处右键-》添加安装器。

5、在安装器的设计界面,出现两个组件。点击serviceProcessInstaller1,在右下角的属性栏中,将Account修改为LocalSystem

6、选中ServiceInstaller1,右下角的属性框中,将ServiceName修改成第3步的ServiceName,其他自行选择。DelayedAutoStart表示开机后是否延迟启动。Description表示服务的描述,DisplayName表示服务显示名称。ServicesDependedOn表示依赖的服务项。StartType表示启动类型,分为自动启动,手动启动和禁用。

二、安装服务

选中项目右键选择“生成”,生成exe文件;

然后将从C:\Windows\Microsoft.NET\Framework\v4.0.30319中拷贝installutil.exe文件到生成目录(bin/Debug目的使installutil.exe和dp0WindowsService1.exe在同一级目录)下。在该目录新建“安装.bat”文件,使用记事本打开,输入如下命令:

%~dp0InstallUtil.exe %~dp0WindowsService1.exe
pause

注意前每个命令前要加一个%~dp0,表示将目录更改为当前目录。倘若不加,可能会出错。pause 一定要换行,否则报错。

最后双击安装.bat文件,就完成服务注册了。

或者【首先,点“开始-运行-输入‘CMD’”,然后输入“cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319”切换到InstallUtil.exe的路径,
其次,输入命令InstallUtil +WINDOWS服务的EXE绝对路径(这个可以通过将EXE拖动到COMMAND窗体里生成)
最后,按回车,此时应该有成功提示。】

在我的电脑上右键选择“管理”,打开“服务和应用程序”下的“服务”,就能看到我们注册的服务了。

三、卸载服务

在该目录新建“卸载.bat”文件,使用记事本打开,输入如下命令:

%~dp0InstallUtil /u %~dp0WindowsService1.exe

pause

同样pause也要换行。

如果在启动过程中遇到如下问题,请将整个项目加上EVERYONE权限。

或者【InstallUtil.exe /u  F:\Debug\DateFDA5.exe】

四、调试

在VS2013中选择“调试”-“附加到进程”,如下:

这样就可以调试了。

最新文章

  1. bootstrap左右圆角按钮-适配手机页面
  2. [LeetCode] Number of Islands II
  3. [ASP.NET]asp.net Repeater控件的使用方法
  4. DataGridView取消默认选中行
  5. “后PC”时代来临
  6. 设置EXCEL2010打开多个独立窗口
  7. python urllib2
  8. spark1.1.0学习路线
  9. php set env
  10. [大山中学dp常练-4 Rounds]
  11. HUST 1601 Shepherd
  12. Cookie禁用 获取session
  13. Spark核心技术原理透视一(Spark运行原理)
  14. pytest进阶之xunit fixture
  15. Oracle中的AWR,全称为Automatic Workload Repository
  16. python中datetime与string的相互转换
  17. idhttp与cookie
  18. Eclipse Mars 2安装Drools6.4插件(Drools and jBPM tools)时无法安装JBoss Runtime Drools Detector
  19. 【教程】鼠标右键新建添加RTF文档
  20. 更安全的HTTPS

热门文章

  1. Linux相关知识
  2. IDEA的下载安装和激活
  3. SQL_server_2008_r2和visual studio 2010旗舰版的安装(2013-01-16-bd 写的日志迁移
  4. js 判断function是否存在
  5. C语言进阶——goto 和 void 的分析08
  6. SAP(ABAP):STOP,EXIT,CHECK,RETURN,REJECT,CONTINUE
  7. android onNewIntent 为什么要在onNewIntent的时候要显示的去调用setIntent
  8. python几个复习例子
  9. JavaSE总结--多线程
  10. shell脚本递归删除空文件夹