zoukankan      html  css  js  c++  java
  • .net下开发windows服务的经验

    首先由于windows服务不能够在vs2008里直接进行调试所以 所以在开发的时候可以用另一个办法来调试:
    在program.cs文件里main方法做如下修改:
                #if (!DEBUG)
                   System.ServiceProcess.ServiceBase[] ServicesToRun;
                   ServicesToRun = new System.ServiceProcess.ServiceBase[]
                   {
                       new 你的服务类初始化();//就是默认创建的那个部分
                   };
                   System.ServiceProcess.ServiceBase.Run(ServicesToRun);
                #else
                   // 你要调试的方法入口
                     System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
                #endif

    当项目处于debug时,则可以进行调试.

    其次 一般写这服务很多都需要定时机制,而普通的windows的form类的timer控件在服务里是不能使用的
    所以只有使用下面的代码:
              System.Timers.Timer t = new System.Timers.Timer(doubleTimeInterval); //定时
                t.AutoReset = true; //自动重置
                t.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); //加载方法
                t.Start();

    当开发调试工作已经完成就需要在系统里安装服务了.
    点击工程名右键添加安装程序类,创建,然后在设计窗体里看到这个安装程序类有2个组件,一个是设置服务名称的,另一个设置自动启动还有服务使用的账号这些东西.
    都搞好了 然后生成文件.

    在vs2008菜单的Visual Studio Tools里有个Visual Studio 2008 命令提示工具 vista下以管理员方式运行,然后 键入命令
    installutil 生成的文件地址\生成的exe文件 然后可以去服务里启动 好了 服务运行了吧.
    当然 如果要卸栽 就在刚才的命令里加上 \u

    如果要知道服务在运行的时候究竟情况怎么样,或者想知道时间点是否进入了,那么可以在代码增加记录日志类:
                EventLog  eventLog1 = new EventLog();
                eventLog1.Source = "service";
                eventLog1.WriteEntry("Service start");
    另外注意下 如果需要读取配置文件 则应该是 后缀为exe.config的这个

  • 相关阅读:
    POJ2253 Frogger
    搜索专题(复习)
    机器学习资料整理
    51nod 1873 初中的算术
    Canny检测理解和Matlab实现
    Floyd+限制路径步数(快速幂优化)
    bitset优化背包问题
    Educational Codeforces Round 44 (Rated for Div. 2)
    BZOJ 3224 SBT 普通平衡树
    本科课程大数据基础
  • 原文地址:https://www.cnblogs.com/neverlost/p/1706967.html
Copyright © 2011-2022 走看看