ASP.NET Core 2.2站点预热

时间:2019-08-27 16:56:13

标签: azure asp.net-core azure-web-sites asp.net-core-webapi

我已经将.NET Framework 4.6 WebApi迁移到了.NETCore 2.2,但在获取IIS ApplicationInitialization模块以在启动/插槽交换/横向扩展上调用端点时遇到了麻烦。

我添加了一个Web.Config,例如:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\FR911.Api.Core.dll" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" hostingModel="inprocess" />

      <applicationInitialization doAppInitAfterRestart="true">
        <add initializationPage="api/Warmup>
        <add initializationPage="/" />
      </applicationInitialization>
    </system.webServer>
  </location>
</configuration>

但是,如果我保留默认的“进程内”托管模型,则永远不会调用预热。如果更改为“进程外”托管,则在交换完成之前会调用我的预热。

我认为以下问题可能与之相关:

https://github.com/aspnet/AspNetCore/issues/8057

我不希望手动ping或以其他方式触碰端点,因为我希望IIS是Azure的模块中的现有功能实际上不会在预热请求完成之前(因此初始化EFCore等)交换端点。

有人有运气让它与进程内托管模型一起工作吗?

0 个答案:

没有答案