首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

后台服务,开启,长时间运行都无有关问题,退出的时候偶尔出错

2012-01-14 
后台服务,开启,长时间运行都无问题,退出的时候偶尔出错后台服务程序,service方式开启服务,没有任何问题长

后台服务,开启,长时间运行都无问题,退出的时候偶尔出错
后台服务程序,service   方式
开启服务,没有任何问题
长时间运行也没有问题
退出的时候,偶尔会发生问题,注意是偶尔
使用日志监控,发现主服务线程成功结束,然后释放内存等也全部成功结束
最后返回MAIN函数,日志记录到也是成功结束
可以偶尔会发生错误,发生错误时日志也可以看到所有的结束动作都是成功的
也就是已经到了MAIN( )函数的RETURN部分了
接下去是一些类的自我释放,这个无法监控到了
但是同样的类,用在另外一个程序中,无任何问题,测试中也没有问题
怪了
怪还怪在服务结束后大约3-5秒,系统才弹出错误提示框,
内容类似
Server=watson.microsoft.com
UI   LCID=2052
Flags=1674066
Brand=WINDOWS
TitleName=XXXXXXX.exe
DigPidRegPath=HKLM\Software\Microsoft\Windows   NT\CurrentVersion\DigitalProductId
ErrorText=如果您正执行到一半,您的未保存的信息可能会丢失。

我的监控日志可以记录到已经执行到MAIN( )返回了
  2007   04-12   12:49:53   A   and   U   thread   exit   ok
  2007   04-12   12:49:53   Free   user   data   ok
  2007   04-12   12:49:53   Free   thread   memory   ok
  2007   04-12   12:49:53   End   Memory   Pool   ok
  2007   04-12   12:49:53   Flush   memory   log   ok
  2007   04-12   12:49:53   My   service   of   xxxxxxx     exit   ok!   *
  2007   04-12   12:49:53   --------Stop   myservice   successfully   done--------
  2007   04-12   12:49:53   Service   main:   success   waiting   for   thread   end   ,   now   to   close   handle
  2007   04-12   12:49:53   Server   stop:   Now   to   End   Tcp
  2007   04-12   12:49:56   Server   stop:   Now   to   Call   CoUninitialize
  2007   04-12   12:49:56   ----XXXXXXXX   service   now   exit   successfully----

注意,这个错误不是每次都发生,是偶尔发生


[解决办法]
没办法帮忙
但是提点建议
这种问题要想分析出原因的最好办法就是能稳定的让它出现,如果能想办法让它每次都出现,就成功了一半
另外就是总结出现的规律
[解决办法]
发生的错误是什么?
[解决办法]
内存泄露
[解决办法]
我调试WinService程序的时候,所有线程都加try和Catch,一旦发生错误,全部记录日志
而且new和delete全部重载,delete的时候发现提早销毁也全部记录日志
所有的互斥都自己包装一个类, 对已经销毁的对象操作的时候也记录日志......

当然,以上都是在#define中有定义一个_DEBUG_SERVICE, 取消掉这个定义就和普通代码一样了

希望对你有帮助

热点排行