【问题标题】:Session Ends Automatically会话自动结束
【发布时间】:2015-02-04 00:37:29
【问题描述】:

关于申请: 我在 .NET 中构建了一个应用程序,该应用程序已安装在 5 个子域上。例如 client1.mydomain.com,client2.mydomain.com。最初,我将此应用程序上传到共享服务器上。

问题:我发现,有时用户会话无故结束。我试着弄清楚。支持团队告诉我,我最多可以在池中使用 150 MB。这个应用程序使用了将近 70-80 MB,所以我虽然有 5 个子域,但它实际上使用了 70*5 = 350 MB,这就是轮询正在重置/回收和会话自动结束的原因。 我在 VPS 上转移了我的应用程序。配置为 2GB 内存,40GB 空间,Windows 2008 r2,IIS 7.5。但问题还是一样。

我找到了很多建议,但在我看来它们非常具有实验性

我的想法和疑问:我想我需要设置最大池大小。如果我是正确的,我可以通过“基于内存的最大值”设置池大小,但问题是,如果它取消选中默认的最大池大小是多少。以及最大化池大小我可以设置什么值?

谁能建议我检查什么以及如何解决这个问题?

谢谢

【问题讨论】:

  • 你有同样的解决方案吗?

标签: asp.net session iis-7 application-pool sessionend


【解决方案1】:

请参考这篇文章。

http://technet.microsoft.com/en-us/library/cc745955.aspx

有一个 idleTimeout 供应用程序池回收。

默认为 5 分钟,您可以更改为任何更高的值 [20 分钟首选最大值]。

iis manager -> 应用程序池 -> 选择您的应用程序池 -> 高级设置 - IdleTimeout

【讨论】:

  • 我相信 5 或 20 分钟不会对这个问题产生任何影响。例如,假设我设置了 20 分钟,现在它将在上午 10:20 回收,用户已在 10:18 登录,所以 2 分钟后他的会话将结束..我说得对吗?
  • 不,idleTimeout 是两次服务器 ping 之间的时间。如果您在 10.18 ping [let say login],它将等待 20 分钟进行下一次 ping。你也可以在 web.config 文件中增加“sessiontimeout”。
  • 哦!谢谢我的新东西..让我试试这个,我会回复你的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 2021-05-16
  • 2016-11-18
  • 2023-03-25
相关资源
最近更新 更多