asp.net - Session_Start() 如何在服务器场中工作?

标签 asp.net session web-farm load-balancing

OnSessionStart/Session_Start 事件是否仍然仅在服务器场环境中触发一次(总共),或者由于请求由多个服务器处理,它是否可以在每个服务器上触发一次?

ASP.NET/IIS6 或 7

应该假定服务器正在使用粘性 session 。

最佳答案

对于 IIS 的默认安装,答案是“否”—— Session_Start 通常会触发多次。客户端将在它命中的每个不同服务器上创建一个新 session 。如果您在 IIS 中使用 Web Garden 选项,情况也是如此。

如果您不依赖 Session 并且您有一个服务器场,那么您通常最好完全禁用 Session 状态。这是您的操作方法: http://support.microsoft.com/kb/306996

如果您确实依赖 Session,那么您最好的选择可能是 ASP.NET 状态服务器服务。您场中的所有服务器都将使用单个服务器作为 Session 状态,这将确保 Session_Start 只触发一次。有关设置的大量背景和详细信息,请阅读此(查找“状态服务器模式”以获取具体说明): http://aspdotnetdevs.blogspot.com/2008/12/aspnet-session-state-and-modes.html

关于asp.net - Session_Start() 如何在服务器场中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/583643/

相关文章:

asp.net - ASP.NET MVC 中的 Post Action 分页问题

jquery - Rails 4 无效AuthenticityToken

node.js - 客户端也是 ExpressJS 应用程序时的 Cookie 处理

asp.net - 将更新推送到 ASP.NET webfarm 的策略?

caching - 服务器场中的应用程序缓存值得这么复杂吗?

parallel-processing - 与网格或群集相反,什么是服务器场?

c# - 从后面的代码添加用户控件

asp.net - 必需字段验证器 + 按钮 = 回发!

php - 尝试编写一个使用 session 变量的函数

c# - 隔离单元测试 Controller 的值(value)