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和博客园共有,欢迎转载,但须 ...
随机推荐
- PHP isset() empty() isnull() 的区别
<? isset - 检测变量是否设置 注意: isset 检测变量是否设置,并且不是 NULL. 若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE: empty ...
- 如何解决插入Oracle数据中文为乱码问题
1.首先,Oracle查询编码:select * from v$nls_parameters;//看看是否GBK 2.如果是用Servlet或者别的,插入数据之前输出一下,看看是否乱码.比如: doP ...
- Java对象大小计算
这篇说说如何计算Java对象大小的方法.之前在聊聊高并发(四)Java对象的表示模型和运行时内存表示 这篇中已经说了Java对象的内存表示模型是Oop-Klass模型. 普通对象的结构如下,按64位机 ...
- 用PS如何把图片调出时尚杂志色
摘自:http://www.3lian.com/edu/2013/07-22/83061.html 01:打开图片,执行调整图层-色彩平衡;调整图层的标记-红色方框内图标. 02:色彩平衡-设置-点选 ...
- 弄清 CSS3 的 transition 和 animation
弄清 CSS3 的 transition 和 animation transition transition 属性是 transition-property, transition-duration, ...
- 使用VisualVM分析性能
性能分析神器VisualVM VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量 ...
- android copy项目后修改项目名
有个eclipse下的Android项目,现在因为有个需求想在复制出来一个项目,把这个项目变成两个独立项目.在同一个工作空间下不能同时存在项目名称一样的项目,所以需要修改项目名.具体操作如下: 1.修 ...
- C++ Primer Plus 第六版笔记
C++ Primer Plus 第六版笔记 关于对象声明的思考 转自:http://www.cnblogs.com/weiqubo/archive/2009/11/02/1930042.html C+ ...
- UbuntuでPostgreSQLをインストールからリモートアクセスまでの手順
PostgreSQLサーバの立ち上げに少しハマりましたので.メモしておきます. OS: Ubuntu14.04 LTS インストール 最初はPostgreSQLをインストールします.普通にapt-ge ...
- Array.prototype.filter()的实现
来源 今年某前端笔试的一道题,大概就是实现一遍filter,包括一个可以改变上下文的要求,其实就是改变this啦,跟原生的filter一样的功能跟参数. 解析 filter的功能就是过滤,传入一个函数 ...