我有管理页面,我用它来为我的网站做一些更新工作。问题是会话将在一分钟或30秒内到期并将注销用户。我已经在根文件夹的Web.Config中设置了Session,也在Admin文件夹中的Web.Config中设置了Session,但会话很快就会过期。我把它设置为60分钟,但它只持续30秒或一分钟。这是我的根文件夹的web.config内容
<sessionState timeout="60" mode="InProc"
cookieless="false"></sessionState>
<customErrors mode="Off">
</customErrors>
<trace enabled="true" />
<authentication mode="Forms">
<forms
protection="All"
timeout="120"
domain="www.marpallichande.in"
slidingExpiration="true"
name="auth_cookie" />
</authentication>
这是我在Admin文件夹
中设置的web.cofing文件<sessionState timeout="60" mode="InProc"
cookieless="false"></sessionState>
这是我在Session_Start方法下的Global.asax文件中的设置
Session.Timeout=60;
我没有得到会话如此过期的结果,或者除了会话之外是否有其他原因被注销。
答案 0 :(得分:5)
sessionState超时值以分钟为单位。我首先删除Session.TimeOut(以及除sessionState超时之外的任何其他超时值,保持原样并试一试。另外,不确定为什么你有两个配置文件?他们有相同的设置吗?
我有类似的设置,但只有一个配置文件
<sessionState mode="InProc" cookieless="false" timeout="10" />
将其设置为10分钟。
答案 1 :(得分:1)
在应用程序的全局web.config文件中写入<sessionState mode="InProc" cookieless="false" timeout="10" />
。
通过向Global.asax文件添加名为Session_OnEnd的子例程来定义Session_OnEnd事件。 Session_OnEnd子例程在调用方法或会话已过期时运行。当Timeout属性指定的分钟数没有为会话发出请求时,会话到期。
仅当会话状态Mode属性设置为InProc时,才支持Session_OnEnd事件。
Session_onEnd事件可以在global.asax中定义为:
public void Session_OnEnd()
{
// do your desired task when the session expires
}
答案 2 :(得分:1)
检查根web.config以获取会话状态设置,例如:
//超时以分钟为单位
//关于使用关于InProc的global.asx的注意事项:SessionStateModule.End Event
Session_OnEnd事件仅在会话状态时受支持 HttpSessionState.Mode属性值是InProc,这是默认值。 如果会话状态模式设置为StateServer或SQLServer,那么 Global.asax文件中的Session_OnEnd事件将被忽略。如果是会话 state Mode属性值是Custom,然后支持 Session_OnEnd事件由自定义会话状态存储确定 提供商。
<system.web>
<sessionState mode="InProc" cookieless="false" timeout="30" />
</system.web>
您应该只在1个位置定义。
答案 3 :(得分:0)
如果页面退出几秒后自动,这是因为会话过期
<sessionSate mode="StateServer" cookieless="false" timeout="940"/>
在web.config中编写代码
我找到了解决方案 enter link description here