WEB开发网
开发学院软件开发C语言 C#发现之旅:C#开发Windows Service程序(上) 阅读

C#发现之旅:C#开发Windows Service程序(上)

 2009-04-06 08:24:20 来源:WEB开发网   
核心提示: 各个Windows服务之间可能存在依赖关系,比如IISADMIN服务就依赖另外一个名为RPC的Windows服务,C#发现之旅:C#开发Windows Service程序(上)(3),当启动一个Windows服务时,系统会启动该服务所依赖的其他Windows服务,OnStop方法关闭线程,

C#发现之旅:C#开发Windows Service程序(上)

各个Windows服务之间可能存在依赖关系,比如IISADMIN服务就依赖另外一个名为RPC的Windows服务,当启动一个Windows服务时,系统会启动该服务所依赖的其他Windows服务。例如我们设置IISADMIN服务为自动启动,而RPC服务为手动启动,则Windows启动后会试图自动启动IISADMIN服务,结果会首先启动RPC服务,即使RPC服务不是自动启动。若RPC服务为禁止,无论如何也不能启动,则IISADMIN服务就无法自动启动了。

C#编写Windows服务的基本过程

编写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方法来恢复运行线程。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:发现 之旅 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接