none
访问压力大时的时间转换不正确 RRS feed

  • 问题

  • 一直正常运行的系统在访问压力大的时候就会突然出现“该字符串未被识别为有效的 DateTime。”错误,查询数据库后发现数据都是正确, 重启IIS后又好了。

    相同的条件调用一个方法,在前一秒时,可以正常调用,然后后一秒就报“该字符串未被识别为有效的 DateTime。”, 可以认定跟代码是没有关系的,这点我可以肯定, 我查过当时出错的数据,全都是正确的时间格式。

     

    唯一的问题就是为什么在访问压力大的时候才会出现此问题,大家有没有这方面的经验。


    学习者
    2011年3月18日 6:35

答案

  • 访问压力到处问题一般是:
    有些共享东西容易出问题,如Cache的东西,多人访问
    有些 static类型的变量和方法容易出问题
    可能iis或者.net存在Bug,亦或垃圾回收影响了?这个只能猜测,
    顺便说一下,论坛本身 http://social.msdn.microsoft.com/Forums/zh-CN 偶尔也会出错,然后刷新一下就好了
    所以,需要自己去进行观察、调试,找出规律,这样的问题确实比较麻烦,很多要靠经验进行判断。

    Good luck!


    【孟子E章】
    2011年3月21日 3:11
    版主

全部回复

  • 你好!

    这时应该是你字符串的问题,有些时间字符串错误不是很明显。

    比如:

    2011-02-31 -- 2 月并没有31号

    2011-01-01 00:00:60 秒数并没有 60

     


    知识改变命运,奋斗成就人生!
    2011年3月18日 6:54
    版主
  • 楼上。真的不关数据的事情,这点我可以做保证,

     

    在前一秒时,可以正常调用,然后后一秒就报“该字符串未被识别为有效的 DateTime。


    学习者
    2011年3月18日 15:46
  • 你好!

    这个错误计算机提示不会错的。

    你在发生错误的代码块加上 try...catch,在 cache 代码中把异常信息和转换 datetime 前的字符串记录下来进行比较。


    知识改变命运,奋斗成就人生!
    2011年3月19日 1:44
    版主
  •  我也加上了try...catch, 然后也记录了转换 datetime 前的字符串。  没问题。 

    我做开发几年了,这点还是能保证的。 

     

     


    学习者
    2011年3月21日 3:01
  • 访问压力到处问题一般是:
    有些共享东西容易出问题,如Cache的东西,多人访问
    有些 static类型的变量和方法容易出问题
    可能iis或者.net存在Bug,亦或垃圾回收影响了?这个只能猜测,
    顺便说一下,论坛本身 http://social.msdn.microsoft.com/Forums/zh-CN 偶尔也会出错,然后刷新一下就好了
    所以,需要自己去进行观察、调试,找出规律,这样的问题确实比较麻烦,很多要靠经验进行判断。

    Good luck!


    【孟子E章】
    2011年3月21日 3:11
    版主