C#编写Windows服务的基本过程
来源:互联网 发布:linux多进程服务器 编辑:程序博客网 时间:2024/05/29 09:51
编写Windows服务是一种比较高级的编程技术,内部使用了很多Windows操作系统的核心功能,但微软.NET框架已经很好的封装了这些技术细节,使得我们可以很方便的使用C#编写自己的Windows服务,其基本过程一般为
1.创建C#工程。创建一个EXE工程,可以是WinForm或者命令行格式的。添加对System.ServiceProcess.dll和System.Configuration.Install.dll的引用。
2. 创建服务类。新增一个类,该类型继承System.ServiceProcess.ServiceBase类型,在构造函数中设置ServiceName 属性来指明该服务的名称。然后重载它的OnStart方法来响应启动服务的事件,重载OnStop方法来响应停止服务的事件,重载OnPause方法来响应暂停服务的事件,重载OnContinue方法来响应恢复提供服务的事件。
在重载这些方法时必须要立即返回,其中不能出现长时间的操作,若处理时间过长则Windows服务管理器会觉得该Windows服务停止响应而报错。为此我们可以使用一个线程来进行实际的工作,而OnStart方法创建线程,OnStop方法关闭线程,OnPause方法挂起线程,而 OnContinue方法来恢复运行线程。
3.启动服务。在main函数中调用“System.ServiceProcess.ServiceBase.Run( 自定义服务类的实例 )”来运行服务。比如“System.ServiceProcess.ServiceBase.Run( new MyService() )”,这里的MyService就是继承自ServiceBase。
4.安装服务。新增一个类,该类型继承自System.Configuration.Install.Installer类型,该类型用于配合微软.NET框架自带的安装命令行工具InstallUtil.exe的。我们为该类型附加 System.ComponentModel.RunInstallerAttribute特性,并在它的构造函数中使用 System.ServiceProcess.ServiceInstaller对象和 System.ServiceProcess.ServiceProcessInstaller对象向系统提供该服务的安装信息。
程序编译后我们可以使用命令行“%systemroot%\microsoft.net\framework\v2.0.50727\installUtil.exe 文件名”向Windows服务管理器注册服务,可以使用命令行“InstallUtil.exe /u EXE文件名”从Windows服务管理器中注销服务。
5.编写服务客户端。这是一个根据实际情况而可选的过程,由于Windows服务是没有用户界面的,因此我们可以编写一个具有用户界面的程序来显示和控制Windows服务提供的数据,并进行一些系统设置等操作。比如对于MS SQL Server,数据库引擎是以服务的形式存在,而SQL Server企业管理器就是一个客户端软件。
- C#编写Windows服务的基本过程
- C#编写Windows服务的基本过程
- C#编写Windows服务的基本过程
- c# 编写windows服务
- C#编写Windows服务
- c#编写windows服务
- C#编写Windows服务
- 【C#编写Windows服务】
- c#编写windows服务
- C#编写Windows应用程序的一般过程
- Windows 服务编写基本方法
- 用C# 编写 Windows 服务
- 如何编写C# Windows服务
- 如何编写C# Windows服务
- 用C#编写Windows服务
- C#编写windows服务程序
- 用C#编写Windows服务
- 如何编写C# Windows服务
- 模拟设计工具大比拼
- js随笔一
- mongodb 更新操作
- CSS定位技术
- [转载]UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
- C#编写Windows服务的基本过程
- 4G
- C# 配置文件读取与修改
- 【分享】让AJAX不依赖后端接口
- 简译:网站提速最佳实践
- C++类和接口的设计原则探讨
- 如何用c#打开文件夹并选择文件夹内的一个文件 open folder and select file
- 几种Intent的用法
- 在linux下编写动态链接库的步骤