【问题标题】:ASP.Net Session_Start always firingASP.Net Session_Start 总是触发
【发布时间】:2011-02-03 10:57:53
【问题描述】:

我对以下内容有点困惑: 我在 Global.asx 的 Session_Start() 中建立了一个带有一些逻辑的 asp.net 网站。我预计这甚至只会在会话期间触发一次。但是,每个请求都会触发该事件。

当我声明一个虚拟会话对象时,这解决了问题。 当我在 web.config 中添加 <sessionState mode="InProc" /> 时,我也可以解决这个问题。我使用 IIS7 并检查了默认值,这已经设置为“处理中”。

我错过了什么?这是正常行为吗?即使我没有声明会话对象,我也希望这个事件能够工作。

【问题讨论】:

    标签: asp.net session web-config global-asax


    【解决方案1】:

    【讨论】:

    • 在使用 Redis 提供程序时 Session_Start 不断触发的情况下,这对我有用。 SessionID 总是正确的,但它一直认为会话在每个请求上都是新的。
    【解决方案2】:

    我认为如果使用的浏览器不允许使用 cookie,就会发生这种情况。同样,如果您的应用程序池正在重新启动,会话将丢失。

    <sessionState cookieless="true" />
    

    这将解决不允许使用 cookie 的问题..

    【讨论】:

    • 您对 Count 个用户不使用 Session_StartSession_End 吗?我使用 WebFarm,会话模式 SqlServer。
    【解决方案3】:

    你会检查:

    • 您的网络浏览器cookies 启用了吗?
    • 如果您希望禁用浏览器 cookie,则需要无 cookie 会话状态管理(这不是一个好的选择,因为会话参数将在查询字符串中...)。
    • 在 Global.asx 中的 Application_Start 期间,如果您在那里执行某些操作,您是否检查过是否引发了一些导致您的应用程序崩溃并结束的异常?
    • 在 Application_Start 之后和 Session_Start 之前的任何阶段,您是否在做某事?如果是这种情况,请检查与上一点相同的内容。

    【讨论】:

    • 如果启用了 Web 浏览器 cookie,如何以编程方式获取?
    【解决方案4】:

    我最近遇到了这个问题,发现如果在 bin 文件夹中更新了任何文件,它会自动重新启动应用程序,这会触发 Application_Start 和 Session_Start 事件。在我的情况下,我在 bin 文件夹中创建日志文件,并且日志文件中的更新重新启动应用程序。我只是将我的日志文件移到 bin 文件夹之外来解决问题。

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 1970-01-01
      • 2019-03-06
      • 2014-02-15
      • 1970-01-01
      • 2012-09-06
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多