我也遇到过这要的问题,不过是在winform上,不但有你说的那个问题,就连数据库里的表你都会发现打不开。最后我的解决办法是,每次操作都打开一次链接,用完后马上就关了,而且是手动关的。
  不知道你的数据访问层用的是什么样的方法,如果是用一个统一的方法访问数据库那还好改,如果不是那你就惨了。兄弟下会别在这么做了。
  别的也没什么说的也,肯定的数据链接上的问题了,只有你自己改了,帮不上你了。

解决方案 »

  1.   

    Application的一个变量你是放在那里的使用的?贴代码看下保存在Application的信息页面是否被关闭?
      

  2.   

    我猜想你的是Application的信息丢失,导致连接出错,请按照这方面的想法去检验你的代码。
      

  3.   

    其实Asp.net 有连接缓冲池的, 如果我们不关闭它。 这个连接是活动的, 如果下次再用它的时候, 当超过一定的时间, 这个时候是数据库认为我们的连接超时了, 所以会出错了。   当我们关闭连接的时候, asp.net这时并没有关闭它。所以我们用完连接关闭掉, 下次用的时候再打开。 这时候的效率不会低的。
      

  4.   

    我也遇到这个问题,如果每次对数据库操作都要连接打开一次,操作完了。在关闭,这样不是很麻烦吗?我也想过用Application变量,一直打开连接,但自己没做过,没想到会出现这样的问题,我觉得还是上面几位说的连接超问题哪位有好的解决办法。。
      

  5.   

    TO: bruce007(蜀人) 链接池超时、链接池已满。这都是问题。
    TO: lsh22(老婆,为了你我要学java) 你现在用的就是最好的办法了。
      

  6.   

    呵呵,及时关闭连接
    对象不用的就立即Dispose
      

  7.   

    数据库自动把那个连接Drop了。用的是SQL2k么?用sp_who存储过程看看连接是不是存在?
    BTW,似乎asp.net中所有试图保持资源分配永久化(session/connection等等)的意图均是
    行不通di.....调一下数据库连接字串中的超时值试试。
      

  8.   

    Application变量
    有时间限制,你把时间改长点就可以了吧
      

  9.   

    不能使用Application变量,他没有办法保存数据库连接这样的非托管资源。
    肯定会出错。
    如果必须只用一个连接,用连接池,查一下msdn帮助。