IIS 7 AppPool由于不活动而在回收后logging错误

我们有运行IIS托pipe一个ASP.NET网站的Windows 2008 RS服务器。 今天早上有一个奇怪的序列。 首先通知AppPool由于不活动而被回收:

“进程ID为'6896'的应用程序池'xxxx'的进程由于处于非活动状态而被closures,应用程序池超时configuration设置为20分钟,需要时会启动一个新的进程。

这是有道理的,并没有超时设置,但30秒后,我们看到:

“服务应用程序池'xxxx'的进程意外终止,进程ID是'6896',进程退出代码是'0xc0000005'。”

我发现了一个较旧的知识库文章 ,解释了在IIS6上可能会发生这种情况,因为许可问题,但是我很好奇IIS7.5上可能会导致这种情况,特别是因为我们没有经常看到它。

那篇文章的类似的事情可能是一个原因。

错误信息基本上是“拒绝访问”(以05结尾的任何内容通常都是“否”),这表明该进程在被告知要离开时试图做某些事情,并且失败了。

因为:

  • 这是一个闲置的工作进程
  • 已被告知要回收和
  • 因此终止,而且
  • 一个新的工作进程会在旧的进程被终止之前排队(除非有一个挂起的请求到同一个池中,否则这个进程实际上并没有运行;同时HTTP.SYS队列被重新设置为WAS)

…应用程序的影响应该是最小的(对任何用户来说都是零),除非它试图在appdomain终止或类似的事情上做一些疯狂的事情。

如果它是作为应用程序池帐户(术语的讨论)进行的,那么很可能(因为没有请求而进行回收),该帐户可能无法读取或写入某个地方。 不错,具体是不是?

所以,更多的信息请:

  • 您是以特定的用户帐户运行App Pool还是以ApplicationPoolIdentity的身份运行?

  • 如果一个特定的帐户,你有manualGroupMembership = true

    • (如果是这样,用户是IIS_IUSRS的成员?如果不使用mGM = true,不需要,IIS_IUSRS的SID被注入)