现在的位置: 首页 > 综合 > 正文

Windows 服务入门

2012年06月07日 ⁄ 综合 ⁄ 共 861字 ⁄ 字号 评论关闭
        今天做了一个Windows服务,做服务的目的就是想让让它一直检查数据库,当满足一定的条件时弹出一个窗体,也就是报告数据库的修改信息,一开始也是没什么头绪,看看C#高级编程后面的Windows服务介绍也没太懂,后来上网找了个源码看看,懂了一点,开始写代码,现在想想其实也挺简单的,只是在OnStart事件里加入要执行的函数什么的,然后在OnStop()时间加入服务停止时需要执行的代码.在服务的设计视图查看属性,点击下面的“添加安装程序”就会自动添加一个.cs文件时服务的安装程序,那里有一个重要的组件serviceInstaller,它有一些属性可以对服务的基本信息进行修改,比如DisplayName属性就是设置在服务浏览面板里服务所显示的信息,StartType设置服务启动参数,比如Automotic是系统启动的时候服务也启动,等等。
        当然,简单不一定没有问题,一开始我想用一个Timer组件实现每隔多长时间进行一次访问 可是在OnStart()事件里加入 timer1.enable = ture;没有什么反应,我加了一个EventLog组件,然后当OnStart开始时先写一个日志然后再执行timer,可是发现日志写了,但是timer并没有被执行,无奈,只好用线程来代替了,把timer的部分转换成线程 在执行就没有错误了,看来timer组件在windows服务里不能正常工作。
        然而,Windows服务的调试过程也是挺麻烦的,先要注册服务,我建议分别写一个注册注册和删除服务的bat注册的命令是(installutil.exe  文件名)删除时加一个参数( installutil.exe  /u 文件名),这样就可以。

        但是目前我还有一个问题没有解决,因为我想通过Windows服务调用一个.exe文件但是我用 System.Diagnostics.Process.Start("aa.exe");出现异常,拒绝访问!如果哪位曾遇到过类似的问题或者能解决请给我留言,谢谢了!

抱歉!评论已关闭.