我想把数据库连接放在Session中,这样就不用每次打开页面就去连接数据库,但出现了个问题。
当在每个页面里实现单独的数据库连接是,完全正常。而当使用session("dbcon").open()时,会产生错误,什么OCIEnvCreate -1错误之类的,session("dbcon")是在Session_OnStart里面实例化的OleDbConnection对象(session("dbcon")=new OleDbConnection()),dbcon是在Global.asax里用<object>标记声明,scope是session.请问,asp.net session里面对于对象的存放是不是有什么限制?记得以前用ASP的时候是没什么问题的。

解决方案 »

  1.   

    To: luck0235(风平浪静时人人都能掌舵) 谢谢,不过我相信CONNECTIONSTRING我基本不会弄错,因为ADO刚出来的时候我就用过它了.
    而且,如果不把OleDbConnection对象放在session里面,是可以正常连接,并不出问题.
    只是当把连接对象放在session中时,open的时候就出错,根据返回的错误代码,好象是内存堆的问题.
      

  2.   

    当使用的是进程内(InProc)的Session那么可以轻松的保存任何对象。如果你使用了非InProc的模式,则只能保存可以序列化和反序列化的对象,如果此时保存的对象不支持序列化,则不能保存到这种模式(非InProc)的Session里。
      

  3.   

    To: luck0235(风平浪静时人人都能掌舵) 我想默认应该是InProc的Session,因为我在web.config里面明确指定使用StateServer时,报的错误是完全不一样的。在默认情况下,报错是OCIEnvCreate -1的错误,我搜了google,大多是说内存堆的错误,但都没有很具体的解释
      

  4.   

    能不能不用session 在webconfig里面配置连接字符串