1:新建一个WINDOWS服务项目;

2:打开自动生成的Server1的源代码,可以在其中看到OnStart与OnStop方法,代表的是服务的启动与关闭;

3:将事件日志中的写日志的方法COPY到Service1类中:

public void WriteLog(string logName, string SourceName, string LogText, EventLogEntryType type)

{

// Create an EventLog instance and assign its source.

EventLog el = new EventLog();

try

{

// Create the source, if it does not already exist.

if (!EventLog.SourceExists(SourceName))

{

if (EventLog.Exists(logName))

{

el.Log = logName;

}

else

{

EventLog.CreateEventSource(SourceName, logName);

}

}

el.Source = SourceName;

el.WriteEntry(LogText, type);

}

catch (Exception ex)

{

el.WriteEntry(ex.Message, EventLogEntryType.Error);

}

}

4:修改OnStart与OnStop方法:

protected override void OnStart(string[] args)

{

WriteLog("Lgz12813Log", "Lgz12813Src", "test start...", EventLogEntryType.Information);

}

protected override void OnStop()

{

WriteLog("Lgz12813Log", "Lgz12813Src", "test stop...", EventLogEntryType.Information);

}

5:在Services1的设计视图的右键菜单中选择“添加安装程序”;

切换到刚被添加的ProjectInstaller的设计视图,可以设置serviceInstaller1组件的ServiceName、DisplayName、StartType等属性;

设置serviceProcessInstaller1组件的Account属性的值为 LocalSystem

6:生成解决方案;

7:打开VS自带的CMD窗口,切换到项目的bin\Debug路径下,这里有编译生成的exe文件;

8:执行安装服务的命令:installutil *****.exe ;

9:安装完成后,可以到管理工具\服务中找到安装好的服务,如未启动,可以将其启动;然后再将服务停止;

10:此时可以到事件查看器中查看日志记录;

11:卸载服务:installutil /u *****.exe ;

最基本的使用方法到此结束。

其他:

一: 在Windows服务中使用MessageBox弹出框

1:添加对System.Windows.Forms的引用;

2:使用6个参数的重载形式:MessageBox.Show("", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

二: 在Windows服务中使用Timer组件

不管从工具箱中什么地方(包括从组件中)拖进来的Timer都是System.Windows.Forms.Timer(网上说是WS的一个BUG),在Windows服务中需要使用System.Timers.Timer,我的办法是从工具箱中拖进来之后,到.Designer.cs文件中修改实例化的代码。

注意:两个Timer组件的到期事件名不一样:

System.Windows.Forms.Timer:Tick

System.Timers.Timer:Elapsed

三:调试Windows服务

方法一:使用 MessageBox.Show 显示出想要查看的信息;

方法二:将服务安装且启动后,使用 “附加到进程” 的方法;

参见:http://www.cnblogs.com/xiaoxiangfeizi/archive/2012/04/18/2454715.html

四:安装Windows服务

前面提到过使用installutil.exe文件安装windows 服务,使用安装包安装将更简单。

1:在解决方案中添加一个“安装项目”:选中解决方案-右键-添加-新建项目-其他项目类型-安装和部署-Visual Studio Installer-安装项目

2:应用程序文件夹-添加-项目输出- 在项目中选择你的Windows Service项目-主输出-确定

3:选中安装项目-右键-视图-自定义操作-安装-添加自定义操作- 应用程序文件夹 - 主输出;在卸载中也添加主输出;

4: 生成服务项目和安装项目,安装包可以使用了。

转载于:https://www.cnblogs.com/lgzslf/archive/2012/08/14/2637868.html

Windows服务的创建、安装、调试相关推荐

  1. 【转】C# windows服务的创建与调试

    Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...

  2. 创建mysql windows服务_MySQL的安装及创建(windows下操作)

    一.MySQL的下载 二.MySQL的安装 1.解压:将下载的压缩包解压到指定目录,如:D:\MySQL\mysql-8.0.20-winx64,解压后在根目录下的bin文件夹有两个文件:mysql. ...

  3. 无法从命令行或调试器启动服务,必须首先安装Windows服务....。在“安装”阶段发生异常。 System.Security.SecurityException:未找到源

    此处一共两个问题,第一个问题完整描述是: 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer.Windows服务器管 ...

  4. python windows服务_Python创建Windows服务

    首先让我们开始安装Python for Windows扩展: c:test>pip install pywin32 完成后,让我们编写该基类,您的Windows服务将是该基类的子类. ''' S ...

  5. Windows服务工程创建、部署

    一.创建.部署windows服务 1.在VS2010创建windows service工程 文件---新建---项目----windows服务. 2.双击service1.cs,在onstart中写具 ...

  6. C#实现Windows服务的制作安装和删除

    运行Visual Studio.net,建立一个C#的Windows服务项目. 主程序代码: 以下为引用的内容: 以下是引用片段: using System; using System.Collect ...

  7. C# windows服务:创建Windows服务(Windows Services)的一般步骤

    C#创建Windows服务(Windows Services) Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Wind ...

  8. 在一个windows服务下,安装多个mysql服务。

    2019独角兽企业重金招聘Python工程师标准>>> 首先本地先安装一个服务,去下载zip就好啦·~就不多说啦~~ 从安装好的mysql目录下复制一份,放到边上就好,如下图 MyS ...

  9. Windows服务BAT命令-安装、卸载、启动、停止

    安装脚本 @echo off @echo 开始安装[服务] %SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\installutil.exe %~dp ...

最新文章

  1. 绝地服务器维护7月5日,绝地求生7月5日更新到几点 吃鸡更新维护公告
  2. python基础教程:包的创建及导入
  3. tar解压出错:gzip: stdin: unexpected end of file的解决
  4. mysql 5.7.14编译安装_源码编译安装mysql-5.7.14-阿里云开发者社区
  5. 【数据结构与算法】之电话号码键盘的字母组合算法
  6. python使用异常的目的和好处_python 错误与异常,python assert的作用
  7. 学习HTML5 canvas遇到的问题
  8. Java中抽象类和接口的区别?
  9. 通过Repository Manager 1.3来管理戴尔驱动程序更新
  10. IDEA配置码云Gitee的使用详解
  11. Linux内核使用的字符串转整形数和16进制数
  12. 代码生成工具系列-----代码生成工具(CodeEasy)介绍
  13. [转]coolfire黑客入门教程系列之(七)
  14. 有道 - 扇贝 - 海词词典发音链接
  15. 【破解APP抓包限制】Xposed+JustTrustMe关闭SSL证书验证!
  16. java SE部分以及数据库学习笔记
  17. 搭建 WordPress 博客教程
  18. 用python画竹子_基于Python的一个简单爬虫(糗事百科爬虫)
  19. 【有奖众测】快服务开发者俱乐部第一期来咯!
  20. 云计算机房之间消防通道,商场的消防通道该怎么设计才合理?

热门文章

  1. StateListDrawable和ShapeDrawable结合使用
  2. Nginx 服务优化与防盗链
  3. 【AWSL】之Linux引导过程及服务控制(MBR、GRUB、runlevel、systemcl、init、ntsysv、chkconfig)
  4. python多线程并行编程_Python并行编程(二):基于线程的并行
  5. python持久化存储文件操作
  6. #1098 : 最小生成树二·Kruscal算法
  7. 点击下载!《阿里云SRE技术期刊》2021年5月刊发布啦!
  8. 浅谈阿里云混合云的探索与实践
  9. 数据湖架构,为什么需要“湖加速”?
  10. 为什么做技术 PM 这么难?