在我正在构建的一个小演示应用程序中,我将代码初始化为Global.Session_Start()事件中的数据库。但是,我注意到,当我在开发服务器上的调试器中通过应用程序运行时,不会触发此事件(尚未在其他任何地方对其进行测试)。
问题1:有什么用? Session_Start()何时真正被调用?我假设是 session 开始的时间,但是不是每个新请求序列的开始都会导致 session 自动开始吗?当然,每当我使用F5运行时, session 都应该开始,为什么不这样做。
问题2:应该在哪个更好的地方初始化数据库的代码?我宁愿不将其放在Application_Start方法中,因为在调试时它并不总是被调用。
PS。通过初始化数据库,我并不是说我打开了到SqlServer的连接并使其永远保持打开状态。我正在使用db4o并打开一个预先构建的数据库文件。就像我说的那样,这只是一个演示应用程序,我并不担心资源管理不佳或类似问题。
最佳答案
在您访问Session对象之前,我不能完全确定 session 是否“开始”。否则,启动不必要的 session 似乎会产生不必要的开销。
关于.net - 究竟是什么导致Session_Start被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/671129/