每次我的应用程序在开发模式下运行时,如何强制调用Session_Start
global.asax
方法?
我有一些我需要调试的代码但有时它被调用,有时它不是。 我已经尝试关闭“ASP.NET开发服务器”,但没有运气。
答案 0 :(得分:4)
查看此文章http://sandblogaspnet.blogspot.com/2008/03/methods-in-globalasax.html
仅当用户的新会话启动时才会触发会话启动事件。一旦激活了用户的“Session_Start”,如果用户对应用程序内的任何资源发出后续请求,则该事件根本不会被触发。只有当用户的会话到期,然后用户再次尝试访问应用程序中的任何资源时,才会触发该事件。
您确定不是在寻找Application_Start吗?如果没有,则只要您重置会话应该调用该事件。
编辑:另请查看有关试图与您http://forums.asp.net/t/1608241.aspx/1做同事的人的文章
从该页面开始:
你是对的我只是通过将
<sessionState timeout="1"/>
放在我的Web.config文件中来测试它。 然后我等了1分钟,然后点击页面上的链接。它 立即回到Session_Start并重新验证了 用户。
编辑2 :尝试从起始页面调用Session.Abandon()。它应该删除会话并要求用户启动一个新会话。
答案 1 :(得分:2)
我设法通过重新启动“ASP.NET State Service”来实现这一目的,这是用于管理计算机上会话状态的服务。
不是理想的解决方案,但解决了我的问题。
答案 2 :(得分:0)
这可能是一个痛苦的屁股,但重新启动ASP.net开发服务器和关闭并重新打开浏览器的组合应该重置会话。