【问题标题】:ASP.net site on IIS 8 stops responding after 20 minutesIIS 8 上的 ASP.net 站点在 20 分钟后停止响应
【发布时间】:2019-11-24 13:28:54
【问题描述】:

这应该是一件容易的事,但我一直在研究它,却无法解决它。

我有一个简单的 ASP.net 站点,其中包含一些文本框、下拉列表和几个按钮。其中一个文本框有一个 OnTextChanged 事件,下拉菜单有 OnSelectedIndex 事件。当然,这些按钮都附加了 OnClickEvents。

所有事件都很简单,只需几秒钟即可运行。一切正常。

我遇到的问题是有人加载页面,做了一些工作,然后离开了 20 多分钟。当他们返回页面时,没有任何效果。他们可以在文本框中输入数据并从下拉列表中选择值,但不会触发任何事件。这会迫使用户刷新页面以使一切恢复正常。

我弄乱了代码和网络配置中的多个超时设置。我已经调整了站点和 IIS 服务器上的超时设置。似乎没有任何效果。页面在 20 分钟后消失。

现在,正如我所说,我已经测试了 5 分钟和 10 分钟。这两个工作都很好。因此,在 10 分钟后的某个时间会出现缺乏响应,但我一直在使用 20 分钟进行测试。

就像我说的,我确信这很简单,当我终于找到它时,我会觉得自己像个白痴,但到目前为止,我已经在这方面浪费了太多时间。可能是我修改了正确的设置,但忘记刷新页面或清除缓存或其他愚蠢的事情,但到目前为止我只是卡住了。

【问题讨论】:

  • 检查相关应用程序池的Idle Timeout
  • 其实这是我尝试的第一件事。我将它设置为 0 并且问题仍然存在。我什至尝试将其设置为 2,希望它会提前超时,但 5 分钟后网站仍在运行。

标签: asp.net timeout iis-8


【解决方案1】:

正如 Alex Kudryashev 所说,我建议您可以检查应用程序池中的空闲超时设置。

空闲超时分钟数是工作进程在关闭之前保持空闲的时间量。如果工作进程没有处理请求并且没有接收到新请求,则它是空闲的。默认值为 20(分钟)。

这意味着如果服务器没有收到所有请求,进程将关闭。所以你会觉得你的应用程序在 20 分钟内无法工作。

为避免这种情况,您可以将值修改为 0。这意味着该设置已被禁用。您的应用程序将始终运行。

详情请参考下图:

【讨论】:

  • 好的,所以我又进行了几次测试。我将空闲超时设置为 2 分钟。 3 分钟后,网站仍然响应。我让它再坐了5分钟,它就死了。我只是将 Idle Time-Out 调整回 0 并让它静置 5 分钟。该页面仍然响应。我现在让它静置10分钟。让我们看看会发生什么。
  • 我昨天做了所有的测试,把那个愚蠢的空闲超时设置为 0,这个愚蠢的网站会在 20 分钟后变得没有响应。今天,将值设置为2,然后再次恢复为0后,它已经闲置了30多分钟,仍然在工作。我不知道昨天和今天之间发生了什么变化(可能除了湿度?)但它现在似乎正在起作用。我会让它坐在午餐时间,看看当我回来时它是否仍然响应。再次感谢您的帮助。
猜你喜欢
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
相关资源
最近更新 更多