Session_Start / _End,如果它们不包含在全局中,幕后会发生什么?

时间:2016-12-16 15:48:56

标签: asp.net asp.net-mvc

如果你没有在global.asax中明确定义MRS 9.0.1input_xdf <- "test.xdf" modified_xdf <- "test_out.xdf" xdf_data <- data.frame(Var1 = as.character(1:10), Var2 = 2:11, stringsAsFactors = FALSE) rxDataStep(inData = xdf_data, outFile = input_xdf, rowsPerRead = 5, overwrite = TRUE) rxDataStep(inData = input_xdf, outFile = input_xdf, overwrite = TRUE, transforms = list(Var1b = as.numeric(Var1)), transformVars = c("Var1") ) rxGetInfo(input_xdf, getVarInfo = TRUE, numRows = 5) rxDataStep(inData = input_xdf, outFile = modified_xdf, transforms = list(Var1 = as.numeric(Var1)), transformVars = c("Var1") ) rxGetInfo(modified_xdf, getVarInfo = TRUE, numRows = 5) ,幕后会发生什么?你的程序是否只是假设它在那里?

有一个我最近正在处理的内部应用程序谁是全局没有这些定义的,并且程序开始有一些会话超时问题。一旦我添加了这些功能,它们似乎就解决了。

2 个答案:

答案 0 :(得分:3)

Session_StartSession_End只是钩子。它们不是必需的,并且会话的功能不会以这种或那种方式受到影响,无论您是否在Global.asax中覆盖它们。

我不确定你的超时问题的来源是什么,但是如果它们得到纠正,那就是你在那些覆盖中所做的任何事情,而不是仅仅存在重载。

更多技术细节

我在上面暗示过,但我认为我应该更明确。类System.Web.HttpApplication,派生自Global.asax,有许多&#34;钩子&#34;在它上面定义。从本质上讲,这些只是占位符,允许您在关键时刻注入功能。换句话说,当ASP.NET需要创建会话时,作为该操作的一部分,它会调用Session_Start。默认实现不执行任何操作,但如果在派生类中覆盖它,则该覆盖中的代码将运行。

答案 1 :(得分:-1)

如果您想跟踪会话开始时间,可以向Session_Start添加类似“SessionStartTime”的会话变量。