强制Session_Start

时间:2012-02-21 15:34:36

标签: c# asp.net session global-asax

每次我的应用程序在开发模式下运行时,如何强制调用Session_Start global.asax方法?

我有一些我需要调试的代码但有时它被调用,有时它不是。 我已经尝试关闭“ASP.NET开发服务器”,但没有运气。

3 个答案:

答案 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开发服务器和关闭并重新打开浏览器的组合应该重置会话。