为什么会话过期

时间:2015-05-01 14:00:34

标签: asp.net session iis-7.5

我们在生产中有一个应用程序(ASP Dot Net , Framework 4.0),部署在IIS 7.5 window server 2012上。这个应用程序每天都在4000 requests左右,但我们在过去几天遇到的问题是有些用户抱怨他们的会话过期了。我们检查了应用程序,但没有看到任何可能导致会话过期的错误。我们已经检查了IIS设置和池设置,但我们认为没有任何理由可以解决问题。

请在这方面帮助我们解决这个问题。

可能我需要提供更多可以帮助您解决问题的细节。 我们在专业组织工作,我们为客户在IIS上运行许多应用程序。我们收到的问题是我们为新客户端构建的相同应用程序之一,并部署在IIS 8.0服务器2012上。

在我们的应用程序的Web配置中,超时是一小时,并且我们确保如果出现任何其他错误,我们不应该将用户路由到会话过期页面。现在,在进行这些更改后,我们非常确定该问题不应归因于应用程序配置或由于其结构。 现在我们关注IIS。这次不同的是我们使用IIS 8.0而不是IIS 7.5,我们在不同应用程序的所有不同服务器上使用它。 您可能感兴趣的一些IIS配置

  1. 我们为应用程序提供了专用池,因此应用程序在框架3.5上配置了2.0。
  2. 最大工人流程= 1
  3. 游泳池在28小时内回收
  4. 如果与IIS 8.0有关,请告诉我是否可以指导我,因为我们正在考虑恢复到7.5,我们的生产应用程序和客户一直在抱怨它。

2 个答案:

答案 0 :(得分:0)

用户会话的生命时间由开发人员/您自己设置。因此,您有权在所需时间设置用户会话超时的时间。这是web.config中声明的格式。

   MyParser myparser = new MyParser (); 
   myparser.parse(scorerInstance.getAlinks());
   myparser.parse(scorerInstance.getBlinks());

您可以将Cookie的创建设置为true或false 决定/决定需要存储会话信息的位置(服务器,数据库..) 这些是可以提供帮助的一些链接。

MSDN

MSDN2

答案 1 :(得分:0)

我想,您可能已经在IIS中为此应用程序分配了默认应用程序池,同样的应用程序池也可能已在其他应用程序之间共享。

步骤1:您应该为IIS中的每个站点分配单独的应用程序池。

第2步:在应用程序池中 - >高级设置 - >将最大工作进程数更改为1

如果上述解决方案无效,请最好尝试https://technet.microsoft.com/en-us/library/cc781036(WS.10).aspx

中给出的解决方案

希望这有帮助。