欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    使我的程序后台运行—Windows服务.ppt

    • 资源ID:65782158       资源大小:1.49MB        全文页数:41页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    使我的程序后台运行—Windows服务.ppt

    第20章 使我的程序后台运行Windows服务Windows服务是长时间运行的程序,这些程序执行任务时不与用户交互。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这些特性使Windows服务非常适合在服务器上使用,每当需要使用不会影响在同一台计算机上工作的其他用户的功能时也适用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。章节内容20.1 什么是Windows服务20.2 创建我的第一个Windows服务20.3 安装和卸载服务20.4 启动和停止服务20.5 Windows服务应用实例:数据库备份20.1 什么是Windows服务Windows服务是可以长时间运行的程序,可以在计算机启动时自动启动,也可以暂停、重新启动或者卸载,并且在执行任务时不显示任何用户界面。20.2 创建我的第一个Windows服务3个步骤:设置ServiceName属性;为服务应用程序创建必需的安装程序;重写OnStart和OnStop方法并为其指定代码,以对服务的行为方式进行自定义。示例:自定义事件日志Step1:新建一个Windows服务项目。单击菜单栏中的【文件】【新建项目】命令,打开【新建项目】窗口在【模板】列表框中选择【Windows服务】,在【名称】文本框中输入“FirstWinService”。在【解决方案资源管理器】窗口,可以看到一个Service1.vb文件,这是Windows服务的代码文件,我们将其重命名为FirstWinService.vb。Step2:在【属性】窗口中,设置服务的ServiceName属性,如下图。该属性用于对系统标识服务的名称。Windows服务的其他属性CanStop:True指示服务将接受停止运行的请求;False指示禁止停止运行服务。CanShutdown:True指示服务希望在运行该服务的计算机关闭时收到通知,以便能够调用OnShutdown过程。CanPauseAndContinue:True指示服务将接受暂停或继续运行的请求;False指示禁止服务暂停运行和继续运行。CanHandlePowerEvent:True指示服务可以处理有关计算机电源状态更改的通知;False指示禁止服务得到有关这些更改的通知。AutoLog:True表示在服务执行操作时将信息项写入应用程序的事件日志;False表示禁用此功能。这些属性用于确定服务的工作机制。默认情况下,AutoLog设置为True。当CanStop或CanPauseAndContinue设置为False时,服务控制管理器会禁用相应的停止、暂停或继续服务的菜单选项。Step3:属性设置完毕后,我们还需要为OnStart和OnStop过程填写所需的处理。由于该服务要实现自定义事件日志的功能,这可以由EventLog组件来实现。在工具箱的【组件】选项卡,将EventLog组件拖到服务设计器中。Step4:编写构造函数以定义一个用户事件日志。可以选择方法声明下拉列表中的New以添加一个空的New方法。下面是构造函数的代码,定义了一个用户事件日志。1 Public Sub New()2 调用基类的构造函数3 MyBase.New()4 InitializeComponent()5 创建一个系统日志源6 If Not System.Diagnostics.EventLog.SourceExists(MySource)Then7 System.Diagnostics.EventLog.CreateEventSource(MySource,_8 MyNewLog)9 End If10 设置EventLog组件的源11 EventLog1.Source=MySource12 设置EventLog组件的日志名称13 EventLog1.Log=MyNewLog14 End SubStep5:重写OnStart方法,定义服务启动时发生的情况。1 Protected Overrides Sub OnStart(ByVal args()As String)2 写入日志,描述信息为“In OnStart”3 EventLog1.WriteEntry(In OnStart)4 End SubStep6:重写OnStop方法,定义服务停止时发生的情况。1 Protected Overrides Sub OnStop()2 写入日志,描述信息为“In OnStop”3 EventLog1.WriteEntry(In OnStop.)4 End Sub除此之外,还可以重写OnPause、OnContinue和OnShutdown方法来定义当服务暂停、继续和系统关机时的处理。至此,我们的FirstWinService服务就基本完成了。单击菜单栏中的【生成】【生成解决方案】来生成项目。注意,不要通过按【F5】键来运行项目,因为Windows服务项目不能以这种方式来运行。20.3 安装和卸载服务Windows服务编写完成以后,还需要安装以后才能启动。我们需要为FirstWinService添加一个安装程序,这是必需的。添加组件在【解决方案资源管理器】窗口中,右击【FirstWinService.vb】,在打开的右键菜单中单击【视图设计器】,打开视图设计窗口。在该窗口的任意一个空白的地方右击,在打开的右键菜单中单击【添加安装程序】。此时,项目中就添加了一个新类ProjectInstaller和两个安装组件ServiceProcessInstaller和 ServiceInstaller,并且服务的属性值被复制到组件。设置ServiceInstaller1组件的属性单击ServiceInstaller1组件,打开其【属性】窗口,验证ServiceName属性的值已为与服务本身的ServiceName属性的值相同,并将StartType属性设置为Automatic。该属性用于确定启动服务的方式,可选值有以下几个。Manual:服务安装后,必须手动启动。Automatic:每次计算机重新启动时,服务都会自动启动。Disabled:服务无法启动。设置ServiceProcessInstaller1组件的属性在设计器中单击ServiceProcessInstaller1,打开其【属性】窗口,将Account属性设置为LocalService。该属性用于设置服务运行的安全上下文,可选值有以下几个。User,当服务已安装并且在由网络上的单一用户指定的帐户的上下文中运行时,该类型将使系统要求提供有效的用户名和密码。LocalService,该类型在用作本地计算机上的非特权用户并向任意远程服务器显示匿名凭据的帐户的上下文中运行。LocalSystem,该类型在提供多种本地特权并向任意远程服务器显示计算机凭据的帐户的上下文中运行。NetworkService,该类型在用作本地计算机上的非特权用户并向任意远程服务器显示计算机凭据的帐户的上下文中运行。添加安装项目在【解决方案资源管理器】窗口中,右击解决方案,在打开的右键菜单中单击【添加】【新建项目】。在打开的【新建项目】窗口中的【项目类型】列表框中选择【安装和部署】项目,在【模板】列表框中选择【安装项目】,在【名称】文本框中输入“MyServiceSetup”,【解决方案】下拉列表框中选择【添入解决方案】。单击【确定】按钮后,安装项目随即添加到当前解决方案中。将Windows服务项目的输出MyNewService.exe添加到安装项目中在【解决方案资源管理器】窗口中,右击【MyServiceSetup】项目,在打开的右键菜单中单击【添加】【项目输出】命令,打开【添加项目输出组】窗口。在【项目】下拉列表框中选择【MyNewService】,在其列表框中选择【主输出】。单击【确定】按钮后,MyNewService 的主输出的项目项被添加到安装项目中。添加自定义操作以安装MyNewService.exe文件在【解决方案资源管理器】窗口中右击安装项目,在打开的右键菜单中单击【视图】【自定义操作】打开【自定义操作】编辑器。在【自定义操作】编辑器中右击【自定义操作】选项,在打开的右键菜单中单击【添加自定义操作】。之后打开【选择项目中的项】窗口。在【查找范围】下拉列表框中选择【应用程序文件夹】,在其列表框中选择【MyNewService 的主输出(活动)】。单击【确定】按钮后,主输出被添加到自定义操作的所有4个节点,即安装、提交、回滚和卸载。在【解决方案资源管理器】窗口中,右击【MyServiceSetup】项目,在打开的右键菜单中单击【生成】命令,以生成该项目。至此,Windows服务的安装程序就完成了。利用安装项目安装Windows服务右击【解决方案资源管理器】窗口中的【MyServiceSetup】安装项目,在打开的右键菜单中单击【安装】,打开安装向导窗口。单击【下一步】,选择安装文件夹。单击【下一步】,确认安装。单击【下一步】,开始安装过程。安装完成后,单击【关闭】按钮。此时,打开【服务器资源管理器】窗口,展开服务器节点,在服务中即可看到FirstWinService服务。也可以右击【我的电脑】,在打开的右键菜单中单击【管理】,打开【计算机管理】窗口,在左侧列表框中单击【服务和应用程序】下的【服务】,也可以看到FirstWinService服务。卸载服务一种是打开【控制面板】,双击【添加或删除程序】,找到该安装文件,单击【删除】按钮。另一种方法是找到安装项目的msi文件,该文件位于安装项目的Release文件夹下。20.4 启动和停止服务服务安装以后,可以手动的启动或者停止。在【计算机管理】窗口,右击该服务,在打开的右键菜单中单击【启动】或者【停止】即可。由于FirstWinService在启动和停止的时候均会写入日志,因此可以查看服务的事件日志输出。在【计算机管理】窗口中,在左侧列表框中单击【事件查看器】选项,即可看到MyNewLog,这是我们自定义的日志源。打开MyNewLog,即可看到写入的日志信息。右击该日志信息,在打开的右键菜单中单击【属性】,可以看到该日志信息的描述。20.5 Windows服务应用实例:数据库备份应用背景:在服务器上常会有一些重要的数据库,为了防止数据丢失或者因为程序崩溃或其他异常情况导致数据损坏,可以定期备份数据库中的数据。本节就来实现这个定期备份数据库的Windows服务。添加计时器首先新建一个Windows服务应用工程,并将计时器添加到工程中来,在服务的构造函数中初始化计时器。【代码演示】下面代码是服务的构造函数,完成计时器的初始化。1 Public Sub New()2 MyBase.New()3 此调用是Windows窗体设计器所必需的4 InitializeComponent()5 在InitializeComponent()调用之后添加任何初始化6 每一分钟就执行备份7 Timer1.Interval=600008 Timer1.Enabled=False9 End Sub重写OnStart方法和OnStop方法在服务启动和停止时分别启动计时器和停止计时器。【代码演示】下面代码重写OnStart方法和OnStop方法,实现计时器的启动和停止。1 Protected Overrides Sub OnStart(ByVal args()As String)2 请在此处添加代码以启动您的服务。此方法应完成设置工作,3 以使您的服务开始工作。4 Timer1.Start()5 End Sub6 7 Protected Overrides Sub OnStop()8 在此处添加代码以执行任何必要的拆解操作,从而停止您的服务。9 Timer1.Stop()10 End Sub该服务的重点代码在于计时器每隔一定的时间间隔(本例中是一分钟)就执行数据库备份的工作。下面代码是计时器的Elapsed事件过程,实现数据库的备份。1 Private Sub Timer1_Elapsed(ByVal sender As System.Object,ByVal e As System.Timers.ElapsedEventArgs)Handles Timer1.Elapsed2 Dim connString As String=Data Source=.;Initial Catalog=VBNET2008;Integrated Security=True;3 Dim conn As SqlConnection=New SqlConnection()4 conn.ConnectionString=connString5 执行备份的语句6 Dim sql As String=BACKUP DATABASE xiaoqu TO DISK=C:VBNET2008.bak WITH FORMAT7 Dim command As SqlCommand=New SqlCommand(sql)8 command.Connection=conn9 Try10 开始执行11 conn.Open()12 command.ExecuteNonQuery()13 Catch ex As SqlException14 Finally15 conn.Close()16 End Try17 End Sub

    注意事项

    本文(使我的程序后台运行—Windows服务.ppt)为本站会员(赵**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开