服务器的实现大概是这样的:使用select模型、动态创建线程执行处理、使用SQL Server 2005数据库。程序运行在Windows 2003系统上1-2天后系统出现异常:现象是这样的:有时点桌面右键弹不同来,有时弹出来的菜单只有几个菜单项、不能运行程序,有时运行出来的程序没有工具栏,或者工具栏上不显示图标。此时把服务器退出后,系统就正常了。使用Process Explorer查看服务器进程,句柄数正常,内存也正常。

解决方案 »

  1.   

    线程是不是没有正常退出,或者是线程中的程序打开了sqlserver的连接,却没有关闭
      

  2.   

    如果是这样的话,应该是会有句柄泄露,但我用Procesp Explorer没看到有多少句柄。
      

  3.   

    应该是 GDI 资源泄漏了
      

  4.   

    应该是资源泄露,用boundchecker等工具查找
      

  5.   

    这样的状况估计是GDI泄露了,用Process Explorer看一下GDI相关的是否正常如果可以的话,调试状态下跑一段时间时候
      

  6.   

    把你的服务器程序开着,把任务管理器也打开,跑一段时间看看,看看的内存和GDI资源是否只增不减
      

  7.   

    从你的表述来看.
    应该存在资源或内存泄露问题.
    一般GDI对象泄露,最容易存在这种问题.而GDI对象泄露是最容易被疏忽的问题.
    如果你无法确认问题到底在哪里,可以把相关的模块抽取出来,单独做个测试的EXE,
    死循环测试,你就很容易发现编码过程里很多自己"理所当然"的错误了.
      

  8.   

    从你的表述来看.
    应该存在资源或内存泄露问题.
    一般GDI对象泄露,最容易存在这种问题.而GDI对象泄露是最容易被疏忽的问题.
    如果你无法确认问题到底在哪里,可以把相关的模块抽取出来,单独做个测试的EXE,
    死循环测试,你就很容易发现编码过程里很多自己"理所当然"的错误了.
      

  9.   


    这个东东不好用,跳出来错误经常一大把,而且一看都报到MFC的原代码处,让人头痛。
      

  10.   

    应该就是GDI泄露了的问题了,明天回公司查下。
    另外关于我的结帐率是102.94%的,我也不知道,应该是CSDN的BUG吧,在CSDN报告BUG有奖厉么?