服务器程序在运行几天后自动消失问题Windows2000服务器端程序,平均同时在线的用户约为500人,在运行几天后出现了服务器端程序自动退出的情况,没有任何日志信息输出,请教大家一下,这是什么问题?

解决方案 »

  1.   

    挂接一个调试器,比如ollydbg之类的,直接在调试状态下运行,一旦退出就可以找到问题所在
      

  2.   

    看了Windows的系统日志,但是没有发生错误时候的报告,只有在发生问题前10分钟左右有4条下面的信息,但是好像和问题本省无关,因为这种日志很多事件类型: 警告
    事件来源: SceCli
    事件种类: 无
    事件 ID: 1202
    日期: 2006-2-5
    事件: 22:12:52
    用户: N/A
    计算机: MY-004
    描述:
    安全策略已传播,但有警告信息。 0x4b8 : 发生扩展错误。解决此事件的最佳方案,请用非系统管理员账户登录并在 http://support.microsoft.com 上查找“Troubleshooting 1202 Events”。 
      

  3.   

    windows的系统日志只记录驱动程序和服务程序的事件触发情况,一般程序无用.
    估计你的线程处理方面可能出了问题,你编译个Debug版本的程序运行一下试试.
      

  4.   

    是不是被其他进程强制杀掉了?如果是服务程序崩溃的话,Windows有记录的。
    服务程序指的是Service,楼主的程序是普通应用程序?
      

  5.   

    呵呵,是不是提示XXX内存不能为read之类的...
      

  6.   

    是不是楼主在程序中catch捕获的ERROR,处理是直接结束程序,不然使用if判断什么的
    如:
    if(某个操作失败)
    {
       结束程序
    }
      

  7.   

    就是没有崩溃的错误对话框,感觉进程直接被结束了也应该不是在catch后结束了程序,因为结束程序的地方有日志输出来,实际上没有任何日志程序的RUBE性有问题...不是太明白
      

  8.   

    哈哈,这个问题我遇到过当时花了近1个月时间才找出来。我把问题给楼主说说,希望能有点启发。当时我写的是一个CONSOLE程序。有一句 memcpy(dst,src, len);
    其中len是动态计算的,当时没考虑到len有时候会被计算成-2,当len被计算成-2的时候,程序就消失了。。
      

  9.   

    http://blog.joycode.com/jiangsheng/archive/2006/02/05/71101.aspx
      

  10.   

    谢谢各位的帮助,现在已经找到了问题
    通过在代码中加入了很多日志输出,
    终于发现了问题的所在,
    以前的代码有个地方使用了Windows系统的线程池来读取数据库,
    因为没有控制产生线程的数量,
    当数据库访问比较慢的时候,就会并发出很多的线程,
    当数量到了一定级别就产生了程序报错退出、资源分配失败等各种不可预见的错误。
    现在还成了自己的代码来控制线程数量,
    改版后一周左右一直就没有出现类是的问题了,而且程序的效率得到了极大的提升。
    再次谢谢各位,通过这个事情,
    告诉我不能过分依赖系统的功能,尤其是在不完全了解其内部工作原理的情况下,
    尽量多看文档,在编码的时候以稳定为前提。