6

我正在考虑使用<sessionState mode="InProc" timeout="45" />,因为有些用户重复登录,我想为他们节省一些时间。但是,在我将它添加到我的web.config文件之前,我想确保不会有副作用。

我阅读了sessionState版本,虽然我已经相当了解发生了什么,但我很想知道应用程序的默认设置是什么,因为此时我的内部asp.net mvc 3没有定义。sessionStatesystem.web

我知道应用程序可以在Session["key"]没有声明的情况下访问,尽管我尽量避免将这种类型的负载放在 Session 上。我假设我的应用程序正在继承 IIS 7 中的一个设置(此应用程序位于共享托管环境中)。

我知道如果我为会话使用专用数据库或服务器可能会出现问题,但这只是一个基本设置,没什么特别的。

sessionStateasp.net mvc 3有默认设置吗?只是遗传吗?web.config如果在 IIS 的其他地方定义了它,是否会因为在 my 中覆盖它而产生副作用?

4

2 回答 2

5

截至目前,默认值Timeout= 20 分钟。

这些是 .Net Framework 4 的默认值。我认为它们不会因为 MVC 3 而改变。

于 2013-01-16T18:25:37.573 回答
0

接受的答案是正确的,但可能 OP 实际上是要询问身份验证超时,即 30 分钟。

我知道这很旧,但重要的是要澄清会话状态与身份验证无关。OP 没有说明正在使用哪种形式的身份验证。假设表单身份验证,则默认超时为 30 分钟,并<authentication...<forms在 web.config 中的元素中进行控制。我发现在使用进程内会话时,最好将您的身份验证超时设置为小于会话超时。我倾向于使用进程外会话作为首选项,因为它保留了来自应用程序池回收的会话数据。

于 2016-03-02T14:25:14.950 回答