Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf IIS 7自动重新启动_Wcf_Iis 7_Basichttpbinding - Fatal编程技术网

Wcf IIS 7自动重新启动

Wcf IIS 7自动重新启动,wcf,iis-7,basichttpbinding,Wcf,Iis 7,Basichttpbinding,我在IIS上部署了WCF服务。(与[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]基本绑定) 我已经建立了自定义内存会话管理,现在我面临一个奇怪的问题,即IIS 7会自动重新启动,甚至不会在事件日志中抛出任何警告或错误。此问题导致销毁所有可用会话 在使用log for net记录应用程序启动和应用程序结束方法之后,我发现了这个问题,并且我将断点放在应用程序

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

我已经建立了自定义内存会话管理,现在我面临一个奇怪的问题,即IIS 7会自动重新启动,甚至不会在事件日志中抛出任何警告或错误。此问题导致销毁所有可用会话

在使用log for net记录应用程序启动和应用程序结束方法之后,我发现了这个问题,并且我将断点放在应用程序启动中,它在测试执行之间暂停

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

问候
穆巴沙尔·艾哈迈德(Mubashar Ahmad)

是否是应用程序池被重新循环?IIS 6将此设置默认为1740分钟。至于iis7,我想你也会有同样的设置?我知道在IIS 6中,此“事件”不会记录为“n错误”。

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

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

当它检测到“不健康”进程时,或者在达到某些操作员可配置的限制后

这些限制包括:

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

这可能就是原因。在这里您可以看到如何配置回收:感谢您的快速回复。这对我来说是新事物,但在阅读了详细的日志之后,我注意到它现在变得有点频繁,可能是我也应该登录应用程序的错误。好的,除了回收利用,还有其他原因吗???。你的记忆在做什么?达到内存限制也可能触发重新循环。此选项也在应用程序池级别设置,据我所知,我通常使用(Sysinternals中的Process explorer)来监视内存,线程和IIS,如果它正在做有趣的事情。hmmm这可能是原因,因为我只使用2 GB ram,并使用sql server作为后端,并且我在10个数据库连接中每秒执行12个以上的查询。让我在8GB内存的服务器上试试。我会让你知道的,谢谢你的另一个提示。亲爱的Slugster,正如我之前提到的,我正在使用自定义会话,并且还声明我正在接收来自Application_Start和Application_End的日志,那么这怎么可能是由于会话超时。无论如何,谢谢你在谈论应用程序池回收,因为我使用的是Win7附带的IIS 7,我认为它是IIS 7.5.*版本。如果是,则我已签出回收配置,仅在设置为默认值(1700+分钟)的计划持续时间后才将其设置为。即使存在某种错误,为什么不将其记录在某个地方:(:(我同意你的观点,在这种情况下这是一个错误,我想这是我们可以详细讨论的问题。我认为默认情况下,这种行为的主要原因是通过更容错的方式,使IIS的感知可靠性更高。很容易看出你是否得到了流程回收。只需检查流程ID。你可以甚至可以将其嵌入WCF响应中,作为诊断步骤。(System.Diagnostics.Process class)