OnSessionStart/Session_Start事件是否仍然只在服务器场环境中触发一次(总计),或者由于请求由多个服务器处理,每个服务器可以触发一次吗?
ASP.NET/IIS6或7
它应该不假定服务器使用粘性会话.
使用IIS的默认安装,答案是"否" - Session_Start通常会多次触发.客户端将在其命中的每个不同服务器上创建新的会话.如果您在IIS中使用Web Garden选项,则会发生同样的情况.
如果您不依赖于Session并且您拥有服务器场,则通常最好完全禁用会话状态.您是这样做的:http: //support.microsoft.com/kb/306996
如果您确实依赖Session,那么最好的选择可能就是ASP.NET State Server Service.服务器场中的所有服务器都将使用单个服务器进行会话状态,这将确保Session_Start仅触发一次.有关设置的大量背景和详细信息,请阅读此文章(查找"状态服务器模式"以获取具体说明):http: //aspdotnetdevs.blogspot.com/2008/12/aspnet-session-state-and-modes.html