C# 服务程序 - 调试服务
前言:本篇文章环境是VS2015,win10.如果有任何的差别,请注意
1. 创建服务程序
1)用VC创建服务程序,叫做 MyTestWindowsService

创建完成之后,可以看到

2)添加安装程序
右键我们的服务Service,添加安装程序

添加完成之后,可以看到,多了一个ProjectInstaller.cs的类。这里我们可以设置服务的一些属性

3)设置服务的属性
点击ProjectInstaller.cs,看到

首先,我们点击serviceProcessInstaller1,可以看到

Name我们可以设定自己的名字,我们这里Name改成serviceProcessInstallerMyTest。Accout改成LocalSystem。如下:

然后,点击serviceInstaller1,可以看到

ServiceName是服务名字,StartType是服务启动方式,我们都做修改,如下:

2. 写代码
我们开始在Service1上面写代码,下一个测试线程来测试服务。每5秒运行一次
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
Console.WriteLine("服务启动");
new Thread(Run).Start();
} protected override void OnStop()
{
Console.WriteLine("服务结束");
} private void Run()
{
while (true)
{
Thread.Sleep();
}
}
}
注意:
很多人在写服务程序时,喜欢把自己线程的代码写在Proram.cs文件中,这个是不正确的,一般都写在服务类中的OnStart方法。
因为OnStart方法才是你启动了服务才要开始干的事情。Proram.cs是安装服务完成时就开始干事情 了。
3. 安装与启动服务
1)安装服务
在调试服务之前,都要安装服务。
我们打开用来安装服务程序的util,叫做 InstallUtil.exe。一般都在路径
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319

然后用命令行工具打开上面的路径

运行以下命令安装(如果要重新安装,首先卸载,再安装)
installUtil F:\ProjectWorkspace\C#\MyTestWindowsService\MyTestWindowsService\bin\Debug\MyTestWindowsService.exe
运行以下命令卸载
installUtil /u F:\ProjectWorkspace\C#\MyTestWindowsService\MyTestWindowsService\bin\Debug\MyTestWindowsService.exe
可以看到,安装成功

安装完成之后,我们可以到服务中心看到我们的服务ServiceMyTest

2)启动服务
上面的界面,右键来启动服务
4. 开始与VS做调试
1)断点我们要调试的行

2)打开【调试】—>【附加到进程】
可以看到我们的服务,记得选择【显示所有用户的进程】,最后按【附加】按钮,开始调试

到此,完成调试工作
可以关注本人的公众号,多年经验的原创文章共享给大家。

C# 服务程序 - 调试服务的更多相关文章
- C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载(极速,简洁)
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...
- VS2013创建Windows服务与调试服务
1.创建Windows服务 说明: a)Description 服务描述,直接显示到Windows服务列表中的描述: b)DisplayName 服务显示名称,直接显示到Windows服务列表中的名称 ...
- JAVA使用IDEA本地调试服务的代码
然后将启动参数的 jdwp=transport=dt_socket,server=y,suspend=n,address=8086 放到服务器上 在执行jar包的命令加入这个 例如 java -jar ...
- C#编写的服务程序启动服务时报错误1053
Application.StartupPath 已知解决方案一: 读写文件路径的问题 用 $"{Application.StartupPath}\\config.txt&quo ...
- delphi服务程序(service)的调试方法
方法一: 1.调试delphi 写的服务程序,有这么一个办法.原来每次都是用attach to process方法,很麻烦.并且按照服务线程的执行线路,可能会停不到想要的断点.笨办法是,在proced ...
- Windows服务调试
Windows 服务(附服务开发辅助工具) 转: http://www.cnblogs.com/BoyXiao/archive/2011/08/07/2130208.html 近来在 Windows ...
- C# 开发的windows服务 不能调试——讨论整理
CSDN的标题:C# 开发的windows服务 不能调试 System.Diagnostics.Debugger.Launch();在想加断点的地方加入这行,是进入断点的,可以进行调试,我的是xp系统 ...
- C#创建、安装、卸载、调试Windows Service(Windows 服务)的简单教程
前言:Microsoft Windows 服务能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面.这 ...
- Windows服务调试小结(附Demo)
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 阅读目录 介绍 搭建环境 调试方式 Demo下载 本文版权归mephisto和博客园共有,欢迎转载,但须 ...
随机推荐
- HTML导航栏
先看效果(两种,1:自己写样式,写交互,2.用jQueryUI 的menu),如下图 第一种: 第二种: 第一种样式: 然后就开始准备了,单村用js和css也可以写出来,不过既然有jq ...
- [NHibernate]查看NHibernate生成的SQL语句
最近接触到一个用Spring.Net结合NHIbernate的项目,第一次使用,有很多配置,数据操作一旦出问题,很难找到原因,那么如何查看NHibernate发送给数据库的SQL语句呢? 当然我们可以 ...
- c语言实现开灯问题
开灯问题: 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依 ...
- Codeforces CF#628 Education 8 D. Magic Numbers
D. Magic Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- [R]R语言中的%>%和%.%
最近在网上看R的代码,常常看到 x %>% y 的写法. 样子看着像是pipe的用法,搜了一下, 没找到语法的相关说明. 今天突然开窍,想着 %>% 可能不是语言本身支持的语法,可能是某个 ...
- 工厂模式(Factory)
一.分类 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式主要分为三个,简单工厂模式(Simple Factory)/ 工厂方法模式(Fac ...
- BZOJ4262: Sum
Description Input 第一行一个数 t,表示询问组数. 第一行一个数 t,表示询问组数. 接下来 t 行,每行四个数 l_1, r_1, l_2, r_2. Output 一共 ...
- Logback_日志使用详解(转)
概述 Logback建立于三个主要类之上:日志记录器(Logger),输出端(Appender)和日志格式化器(Layout).这三种组件协同工作,使开发者可以按照消息类型和级别来记录消息,还可以在程 ...
- SpringMVC4零配置--web.xml
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置. ServletContainerInitiali ...
- linux上安装activeMQ
1.新建一个文件夹activeMQ mkdir /server 2.授权 chmod 777 /server 3.下载activeMQ安装包,拷贝到/activeMQ目录下apache-acti ...