2012-04-02 81 views
0

即使我在web.config中添加了代码,但会出现会话超时的问题,但它不工作,它会在10分钟内过期。在asp.net中服务器端的会话超时c#

<sessionState mode="InProc" timeout="300"></sessionState> 

服务器的会话超时时间为20分钟。

请帮我解决会话超时问题?

回答

1

什么是您的应用程序正在使用的IIS应用程序池上设置的空闲超时值?由于您正在使用InProc会话,因此如果池进程终止,会话也将丢失。

+0

如果我删除inproc模式,那么它也会给出相同的输出 – Ishita 2012-04-02 05:39:00

+0

@Ishita,当你删除它,你r用什么来放置它?因为这是默认设置。如果你只是删除'mode =“InProc”'属性,你会回落到它。 – 2012-04-02 06:35:24

+0

我删除了模式属性。 – Ishita 2012-04-02 08:59:14

0

也许Cookie在您的浏览器中被关闭,或者它被设置为不是域名,而是一些文件夹或子域名。用下面的方式

<sessionState cookieless="true" mode="InProc" timeout="300" > </sessionState> 

测试本次会议是否会工作那么问题是在你的浏览器1)饼干被关闭OR 2)有一定的要求将使会话值设置为null。

更新

如果这是铬问题,那么它将请求favicon.ico的(对我来说)see here我该更新的问题。

+0

它不是浏览器的问题 – Ishita 2012-04-02 06:15:14

1

尽管您的服务器会话超时时间为20分钟,如您所述。您可能会因以下原因丢失会话状态数据:

  • 当IIS应用程序池重新启动或重置时。
  • ASP.NET工作进程被意外回收。
  • 覆盖您的bin或web.config。
  • 或者当您上传或删除应用程序中的任何文件时。

解决方案:使用StateServer会话状态模式:

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="UseCookies" timeout="300" regenerateExpiredSessionId="true" /> 

访问该链接可配置的StateServer:Configure a State Server to Maintain Session State

0

检查应用程序池空闲状态超时默认为20分钟(如果应用程序池处于闲置状态20分钟它会回收,所有进程内会话将被清除)增加其超时