在我正在构建的一个小演示应用程序中,我在 Global.Session_Start() 事件中放置了用于初始化数据库的代码。但是,我注意到,当我在开发服务器上的调试器中运行应用程序时,此事件不会触发(尚未在其他地方进行测试)。
问题一:是什么赋予了? Session_Start() 何时实际被调用?我假设是在会话开始时,但每个新请求序列的开始不应该导致会话自动启动吗?当然,每当我使用 F5 运行时,会话就应该开始,为什么不呢?
问题2:初始化数据库的代码是否应该放在更好的地方?我不想将它放在 Application_Start 方法中,因为调试时并不总是调用它。
附言。通过初始化数据库,我并不是说我打开了与 SqlServer 的连接并使其永远保持打开状态。我正在使用 db4o 并打开一个预先构建的数据库文件。就像我说的,这只是一个演示应用程序,我并不担心资源管理不善或类似的问题。
我知道这是一篇旧文章,但也许这会对某人有所帮助:
除非您实际正在读取或写入会话对象,否则 session_start 不会触发。
如果您想利用 session_start 事件但根本不需要使用会话存储,您可以将以下内容添加到着陆页的页面指令中:
<%@ Page EnableSessionState="ReadOnly" %>
这将导致 session_start 事件触发,而无需在会话对象中存储任何内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)