AlwaysRunning不能正常启动站点

时间:2017-11-29 18:56:34

标签: asp.net iis

我已使用Start Mode = AlwaysRunning

设置了我的应用程序池

此外,我已将以下内容添加到我的web.config文件

<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
  <add initializationPage="/" hostName="example.com" />
</applicationInitialization>

该网站几乎没有请求,除了网站通过Hangfire请求自己,所以我希望网站在回收时自动启动。

在事件查看器中,我看到如下条目:

08:09: A worker process with process id of '2564' serving application pool 'FoobarAppPool' has requested a recycle because the worker process reached its allowed processing time limit.

没关系。它匹配我的应用程序自己的初始化关闭日志。

但接下来是每20分钟一次,持续几个小时:

08:29: A worker process with process id of '3012' serving application pool 'FoobarAppPool' was shutdown due to inactivity.  Application Pool timeout configuration was set to 20 minutes.  A new worker process will be started when needed.

这似乎表明确实开始了新的工作流程。但我的应用程序日志没有显示任何内容,此时ram / cpu的使用率非常低。

然后几个小时后,该站点将再次开始使用ram / cpu,并且日志开始显示活动。这个“沉默”的时期似乎持续了1到6个小时。

我在这里遗漏了什么吗?

在Azure VM上的IIS 10,Windows Server 2016上运行。

1 个答案:

答案 0 :(得分:0)

原来这个问题源于网站的重写规则。

该网站运行https,因此有一条重写规则可将所有http流量重定向到https。

initializationPage网址将通过http调用,因此需要调整规则以不将该初始请求重定向到https,因为IIS不会遵循重定向,而只是接受301/302状态代码。