zoukankan      html  css  js  c++  java
  • Windows 服务入门

            今天做了一个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");出现异常,拒绝访问!如果哪位曾遇到过类似的问题或者能解决请给我留言,谢谢了!
  • 相关阅读:
    ThreadLocal源码分析与实践
    基于jdk1.8的LinkedList源码分析
    Spring编程式事务使用不当导致其他事务无法正常提交
    Spring计时器StopWatch使用
    工厂模式(Factory pattern)
    Spring Cloud Alibaba生态探索:Dubbo、Nacos及Sentinel的完美结合
    Spring Cloud Alibaba微服务生态的基础实践
    自己作图分析分布式技术架构演化的常用套路
    用一个实例项目重新认识分布式系统
    重温Java Web的技术细节
  • 原文地址:https://www.cnblogs.com/interboy/p/475262.html
Copyright © 2011-2022 走看看