什么是 ASP.NET 中的默认会话超时?
Posted
技术标签:
【中文标题】什么是 ASP.NET 中的默认会话超时?【英文标题】:What is default session timeout in ASP.NET? 【发布时间】:2010-10-26 16:33:07 【问题描述】:ASP.NET 中的默认会话超时值是多少?
【问题讨论】:
【参考方案1】:根据MSDN是20分钟
来自 MSDN:
可选的 TimeSpan 属性。
指定会话在被放弃之前可以空闲的分钟数。对于进程内和状态服务器模式,超时属性不能设置为大于 525,601 分钟(1 年)的值。 会话超时配置设置仅适用于 ASP.NET 页面。更改会话超时值不会影响 ASP 页的会话超时。同样,更改 ASP 页的会话超时不会影响 ASP.NET 页的会话超时。 默认为 20 分钟。
【讨论】:
【参考方案2】:这取决于配置或程序更改。 因此,检查当前值最可靠的方法是在运行时通过代码。
查看 HttpSessionState.Timeout 属性;默认值为 20 分钟。
您可以通过HttpContext 在 ASP.NET 中访问此属性:
this.HttpContext.Session.Timeout // ASP.NET MVC controller
Page.Session.Timeout // ASP.NET Web Forms code-behind
HttpContext.Current.Session.Timeout // Elsewhere
【讨论】:
我可以在检查int check = this.HttpContext.Session.Timeout;
时获得值 20,但我可以使用键设置会话超时吗?并检查特定键的会话超时,例如:Session["mykey"]
?
对于那些没有点击 MSDN 链接的人,Timeout
属性值以分钟为单位【参考方案3】:
-
会话的默认有效期为 20 分钟。
Cookie 的默认有效期为 30 分钟。
ViewState 的最大尺寸是页面尺寸的 25%
【讨论】:
【参考方案4】:默认值为 20 分钟。 http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.80).aspx
<sessionState
mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes"
cookieName="session identifier cookie name"
cookieless=
"[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
regenerateExpiredSessionId="[True|False]"
sqlConnectionString="sql connection string"
sqlCommandTimeout="number of seconds"
allowCustomSqlDatabase="[True|False]"
useHostingIdentity="[True|False]"
stateConnectionString="tcpip=server:port"
stateNetworkTimeout="number of seconds"
customProvider="custom provider name">
<providers>...</providers>
</sessionState>
【讨论】:
【参考方案5】:会话的默认有效期为 20 分钟。
您可以更新会话状态并配置超时下的分钟数
<sessionState
timeout="30">
</sessionState>
【讨论】:
以上是关于什么是 ASP.NET 中的默认会话超时?的主要内容,如果未能解决你的问题,请参考以下文章