项目中遇到了一个要写winservice做为一个监视程序在服务器端监视服务的运行状况,并生成相关的文档发送到指定的邮箱里面,如果说是做为一般的应用程序来写的话这个问题很简单,但是在服务程序里面问题就来了.
         首先是生成文档的问题,当然这一个问题在我的另一日志里面已经有一说明,
         另外一个就是启动onStart的时候,安装好了服务程序过后,第一次启动会报一个1053的错误代号,找了很久也没有找到问题出版,甚至是把里面的相关代码全部删除这个问题依然存在,
        然而,另外新建一个服务的话,什么也不写,就不会出这个问题了;现在一步一步的找问题所在.
        首先,在运用中,很多地方会用到全局变量,所以一开始就定义好一个变量
        private System.Timers.Timer timerTask = new System.Timers.Timer();
        这个变量用来做监视用,就是每一段时间写一次数据,然后写一个Elapsed事件,这样就可以运行查看效果了
        timerTask.Elapsed += new System.Timers.ElapsedEventHandler(timerTask_Elapsed);
        这时候问题就来了,在服务里面启动这个服务,每次启动都在启动两次才能启动成功,很郁闷!开始我以为是Elapsed里面的问题,把事件里面的代码全部注释掉,问题还是存在,那么肯定不是这里的问题了,
       然后把onStart里面的代码也注释掉,依然如故
       最后所有的相关方法代码都注释掉了,还是这个问题,最后再看全局变量的问题了,把这个变量注释掉过后,问题解决了!但是,如果这个变量不存在的话怎么来监视呢,有个解决方案,就是在onstart事件里面定义这个变量,这就运行就没问题了!
      但是这样他就成了一个局部变量了,有些时候我们必须要用到全局变量的时候那怎么办呢.经过多次修改最后发现这样的一个问题------那就是在定义全局变量的时候,不能给这个变量进行初始化操作
     后来,全局变量定义在好,但没有初始化,如下
     private System.Timers.Timer timerTask = null;
     这样程序就不会启动两次才能启动成功了,这时我们只需要在onstart事件里面对这个变量进行初始化即可!
     如
     timerTask = new System.Timers.Timer();
     这样就可以在其他地方对这个变量进行操作了!
     以上就是对这次问题的总结!没有什么高深的,只是为了记录编写过程中遇到的一些问题以及解决方案,以备不时之需!