2

我在 IIS 上部署了 WCF 服务。(BasicHTTPBinding 与 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)])

我已经构建了自定义内存会话管理,现在我面临一个奇怪的问题,即 IIS 7 自动重新启动,甚至没有在 EventLog 中抛出任何类型的警告或错误。这个问题会导致破坏所有可用的会话。

我在使用 log for net 记录 Application_Start 和 Application_End 方法后发现了这个问题,并且我将断点放在 application_start 中,它在测试执行之间暂停。

这种情况很少发生,但我需要知道它为什么会发生以及它是否正常和可以接受。如果不是,那么可能的原因是什么。

问候穆巴沙尔·艾哈迈德

4

3 回答 3

4

会不会是应用程序池被回收了?IIS 6 默认设置为 1740 分钟。至于 IIS 7,我猜你会有同样的设置吗?我知道在 IIS 6 中这个“事件”没有记录为 'n 错误。

于 2010-01-26T07:02:12.180 回答
3

IIS在检测到“不健康”进程时或在达到某些操作员可配置的限制后回收工作进程。

其中的限制是:

  • 记忆阈值
  • 在配置数量的请求之后
  • 经过时间
  • 一天中的时间

更多信息

于 2010-01-26T08:09:27.803 回答
0

会话超时(与应用程序池回收分开)默认设置为 90 分钟,这是在应用程序级别设置的。这也意味着在 Session 中举行的任何事情都会在那个时候被吹走。您可以通过 IIS6 中的虚拟目录/应用程序的属性以及 IIS7 中的 SessionState->Open Feature 来设置它(当您选择了应用程序时)。

另请注意,会话超时可以通过 ASP.Net 应用程序的 web.config 设置,如果您的 Web 服务托管在其中之一中。

于 2010-01-26T07:30:22.947 回答