ASP.Net Session_Start 总是触发

发布于 2024-10-15 08:34:16 字数 310 浏览 4 评论 0原文

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

当我声明一个虚拟会话对象时,这解决了问题。 另外,当我在 web.config 中添加 时,我可以解决此问题。我使用 IIS7,并检查了默认值,它已设置为“正在处理”。

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

I am a bit confused about the following:
I set up an asp.net Website with some logic in the Session_Start() of the Global.asx. I expected that this even will only trigger once during a session. However the event fired with every single request.

When I declare a dummy session object this fixed the problem.
Also I can fix this problem when I add <sessionState mode="InProc" /> in the web.config. I use IIS7 and I checked the default value and this is already set to "In Process".

I am missing something? Is this normal behaviour? I was expecting this event to work even if I don't declare a session object.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

烟酒忠诚 2024-10-22 08:34:16

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

<sessionState cookieless="true" />

这将解决不允许 cookie 的问题。

I think this happens if the browser being used does not allow cookies. As well if you application pool is being restarted the session will be lost.

<sessionState cookieless="true" />

That will solve issues with cookies not being allowed..

天赋异禀 2024-10-22 08:34:16

您需要检查:

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

You'd check:

  • Has your web browser cookies enabled?
  • If you want browser cookies to be disabled, you'll need cookie-less session state management (this isn't a good option, because session parameter will be in the query string...).
  • During the Application_Start in your Global.asx, if you do something there, have you checked isn't throwing some exception that makes your application crash and end?
  • During any stage after Application_Start, and before Session_Start, are you doing something? If this is your case, check the same thing as previous point.
不…忘初心 2024-10-22 08:34:16

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

I recently came across this issue and found that if any file is updated inside bin folder it automatically restart application which triggers Application_Start and Session_Start events. In my case i was creating log files inside bin folder and updates in log files restarts application. I simply moved my log files outside of bin folder to resolve issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文