启用应用程序池暂停功能后,IIS 出现 503 错误“系统正在关闭。 (0x8007045b)”

启用应用程序池暂停功能后,IIS 出现 503 错误“系统正在关闭。 (0x8007045b)”

我在 IIS/Kestrel(反向代理配置)中运行的 Windows Server 2016 VM 上有几个 ASP.NET Core 网站。

其中一些网站在白天有一些不活动的时间。因此,它们的应用程序池被终止(我希望保留它以使用更少的资源)。问题是冷启动需要很长时间。然后我设置了这些应用程序池,而Suspend不是Terminate在空闲后。

自那时起,这些网站不仅更长在冷启动时启动,但也有一些冷启动时出现 503 错误。一旦启动,它们就可以正常工作。但暂停的应用程序池第一次出现错误几乎总是 503。正文包含一条消息,如“服务不可用”,但经过翻译(似乎不是 UTF-8,因为字符未正确呈现)。我不确定这条消息是来自 IIS 还是 Kestrel。

在查找失败请求跟踪之后,我发现了这一点:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
 <System>
  <Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
  <EventID>0</EventID>
  <Version>1</Version>
  <Level>3</Level>
  <Opcode>16</Opcode>
  <Keywords>0x100</Keywords>
  <TimeCreated SystemTime="2019-10-24T15:13:51.803Z"/>
  <Correlation ActivityID="{80000C51-0003-BC00-B63F-84710C7967BB}"/>
  <Execution ProcessID="13656" ThreadID="17072"/>
  <Computer>[REDACTED]</Computer>
 </System>
 <EventData>
  <Data Name="ContextId">{80000C51-0003-BC00-B63F-84710C7967BB}</Data>
  <Data Name="ModuleName">AspNetCoreModuleV2</Data>
  <Data Name="Notification">128</Data>
  <Data Name="HttpStatus">503</Data>
  <Data Name="HttpReason">Server has been shutdown</Data>
  <Data Name="HttpSubStatus">0</Data>
  <Data Name="ErrorCode">2147943515</Data>
  <Data Name="ConfigExceptionInfo"></Data>
 </EventData>
 <RenderingInfo Culture="en-US">
  <Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode>
  <Keywords>
   <Keyword>RequestNotifications</Keyword>
  </Keywords>
  <freb:Description Data="Notification">EXECUTE_REQUEST_HANDLER</freb:Description>
  <freb:Description Data="ErrorCode">A system shutdown is in progress.
 (0x8007045b)</freb:Description>
 </RenderingInfo>
 <ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
  <EventGuid>{002E91E3-E7AE-44AB-8E07-99230FFA6ADE}</EventGuid>
 </ExtendedTracingInfo>
</Event>

相关内容