一个OA系统上线了,在本地测试没有什么问题,但上线后,经常,时不时的报错,错误有:OO字段不属于XX表,还有些其他错误,一发病就很多个页面都报错,都与数据库连接相关的,等一段时间,刷新几次,又可以了。系统大概30人使用,之前解决过一个mac加密错误(估计是服务器负载平衡后,viewstate加密密匙不同的错误,后来在web.config中指定viewstate加密相关数据后解决此问题)。
我系统中dal,bll相关类的方法大多是static的,用一个dbhelper,用户注册登录是通过webservice实现。我有以下几点怀疑:是否某个方法是static的,造成用户之间资源争夺?或者是该dbhelper中有些方法有漏洞,造成连接没有关闭等等?
请有经验的coder分析指点下.....

解决方案 »

  1.   

    你的怀疑有道理,static类的确不太好,我很少用static的。你可以试试减少static数量
      

  2.   

    是的很有肯能是,很有肯能是static关键字的原因,虽然在写数据库操作类时,用static关键修饰的方法,调用时很好调用,但很容易出错,楼主可以做个Demo,用定时器,或线程写(为了单位时间内多次调用),同时开多个Demo,你会发现乱套。最好不用关键字,在调用时new个对象,调用。我也碰到过楼主的一样的问题,楼主先做个Demo试试。
      

  3.   

    我采用100%的TDD开发方法,你的问题实在没有兴趣去猜测,在真正的XP开发中不可能发生。
      

  4.   

    你是用PetShop的结构?如果是那种结构的static是不会有什么问题的,贴代码出来OO字段不属于XX表,这个好象和数据连接无关吧
      

  5.   

    查询语句是绝对没有问题的,我也不至于连个select语句都写错。字段名的确存在,并且更多时候,网站是正常运行的,但多人用的时候,一天会报几次错误,一报错,全部页面都报错,全部人都报错。
    无论在国内或者国外,都有人有这样的经历(奇怪的是国外更多).在google英文上搜一下"column does not belong to table"就会有很多这样的贴,而且情况都和我差不多,报错都是不定时出现的,但确切的解决方法却没有。有的说是sql 2000升级到05会有这样的问题(我也是从000升级到05的),有的说在多核服务器中使用使用static方法会导致static方法执行不同查询导致返回的datatable间出现覆盖导致列丢失(我也是多核服务器+大量static)。反正就是没有确切解决方法...郁闷