zoukankan      html  css  js  c++  java
  • 调试ccbpm系统的bug个技巧 如何调试asp.net程序导致iis死机问题

    最近ccflow程序在运行的时候经常导致iis死机,单步调试无法找到问题。

    但是退出重新启动vs程序,又可以了。第一次运行没有问题,为此问题,不知道从何地方下手。

    为此我想到了写一个单元测试来测试是否可以,在ccflow上面创建一个单元测试代码。如下

    把default.aspx设置为起始页,执行第1次成功,第2次就失败。

    由此我想到,一定是底层的代码出现错误,而非前端的js导致iis死机的问题。

    我把范围在缩小一次,执行default.aspx ,发现代码出现在第一个发送方法上面。

    BP.WF.Dev2Interface.Node_SendWork("001", workid, 102, "liping");

    进一步缩小范围,就是我们的核心代码 NodeSend() ;的方法,出现问题。因为NodeSend这个方法比较大,所以我在中间写一个了个异常。

    经过测试发现,这个大方法的上部分,没有问题。

    我把剩余代一半代码,在缩小范围一半,在中间部分,增加上

    throw new Exception("err@运行到这里了,刷下一下页面,检查是否出问题,如果出问题就说明,以上代码有问题。");

    这个异常,最后定位到,处理事件的这个方法出问题了。

    用同样的方法,把在方法体中间,加抛出异常,反复几次,终于定位到了,发送邮件的时候导致的问题。

    为了不耽误使用,我暂时注销了他。

    总结:

    1. 遇到类似的问题,需要写一个单元测试,需要找到重现的场景。
    2. 找到重现的场景,就需要采用2分法,把代码体分成一段一段的,然后在去找问题。
    3. 单元测试,是解决问题的最佳办法。
  • 相关阅读:
    Pwn-warmup_csaw_2016 writeup
    操作系统习题总结
    操作系统-存储器管理部分(待更新)
    树与二叉树之间的互相转换
    黑客攻防技术宝典-反病毒篇笔记(三)
    jaegeropentracing的Java-client完整分布式追踪链
    jaegeropentracing的Java-client
    IDEA2018.2版本注册
    Spring整合CXF webservice restful 实例
    带有WS-Security验证的webservice
  • 原文地址:https://www.cnblogs.com/mengjuan/p/12567589.html
Copyright © 2011-2022 走看看