创建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中选择“调试”-“附加到进程”,如下:

这样就可以调试了。

使用C#创建windows服务程序的更多相关文章

  1. C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载(极速,简洁)

    本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...

  2. 用Visual C#创建Windows服务程序

    一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Wind ...

  3. 用C/C++创建windows服务程序

    转载:https://blog.csdn.net/chenyujing1234/article/details/8023816 一.演示过程下方代码演示了如何使用vs(C/C++)创建windows服 ...

  4. 浅谈delphi创建Windows服务程序与窗体实现交互

    我想实现的功能是创建一个服务程序,然后在服务Start时动态创建一个窗体Form,然后把Form缩小时变成TrayIcon放在Windows托盘上. 我在服务程序的OnStart事件中写到 Start ...

  5. 用QT创建WINDOWS服务程序

    恩, qtservice挺好的http://www.qtsoftware.com/products/appdev/add-on-products/catalog/4/Utilities/qtservi ...

  6. 使用C#创建windows服务续之使用Topshelf优化Windows服务

    前言: 之前写了一篇“使用C#创建windows服务”,https://www.cnblogs.com/huangwei1992/p/9693167.html,然后有博友给我推荐了一个开源框架Tops ...

  7. C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案

    本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...

  8. .net Windows服务程序和安装程序制作图解 及 VS 2010创建、安装、调试 windows服务(windows service)

    .net Windows服务程序和安装程序制作 最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作 ...

  9. 创建一个Windows服务程序与实现定时器效果

    1.创建一个Windows服务程序 一.   新建Window服务项目 二.   添加安装程序 三.   配置服务属性 四.   编写定时器代码 publicpartialclassService1 ...

随机推荐

  1. mysql中列属性

    mysql列属性包括:NULL .default.comment.primary key.unique key 一.NULL定义方式:NULL(默认) NOT NULL 空属性有2个值,mysql数据 ...

  2. Linux用户与组管理命令

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. who | cut -d" " -f1 | sort -u 或 who | cut -d ...

  3. Centos7上搭建activemq集群和zookeeper集群

    Zookeeper集群的搭建 1.环境准备 Zookeeper版本:3.4.10. 三台服务器: IP 端口 通信端口 10.233.17.6 2181 2888,3888 10.233.17.7 2 ...

  4. 【Effective C++ 读书笔记】条款02: 尽量以 const, enum, inline 替换 #define

    条款02: 尽量以 const, enum, inline 替换 #define 这个条款或许可以改为“宁可以编译器替换预处理器”. 编译过程: .c文件--预处理-->.i文件--编译--&g ...

  5. Oracle导入导出.sql、.dmp文件

    Oracle导出导入表(.sql..dmp文件)两种方法 提示:在导入sql和dmp文件之前,先建立用户,指明表空间.其中要注意用户名和表空间最好跟sql文件中的一样. 建表空间授权参考 :http: ...

  6. 微信小程序真机定位问题技巧

    小程序导航 https://wq.xmaht.top 开发者在开发小程序的时候可能会碰到一些这样的问题: 问题1  开发者工具上看效果没问题,但是在真机上测试不行? 问题2  有用户遇到小程序功能无法 ...

  7. 模块pandas

    python之pandas简单介绍及使用(一) https://www.cnblogs.com/misswangxing/p/7903595.html

  8. MySQL触发器和更新操作

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...

  9. Windows Server 2008 R2 可能会碰到任务计划无法自动运行的解决办法

    在做Windows Server 2008R2系统的计划任务时使用到了bat脚本,手动启动没问题,自动执行缺失败,代码:0x2. 将“操作”的“起始于”进行设置了bat脚本的目录即可.

  10. TouTiao开源项目 分析笔记18 视频详情页面

    1.效果预览 1.1.需要做到的真实效果 1.2.触发的点击事件 在MediaArticleVideoViewBinder的每一个item点击事件中: VideoContentActivity.lau ...