正在为Azure App Services中的多个虚拟应用程序配置AspNetCoreModuleV2

Jer*_*emy 6 azure azure-web-sites .net-core azure-web-app-service asp.net-core

我在同一个App Services实例中以两个虚拟应用程序托管在Azure App Services上的ASP.NET Core应用程序。主站点应用程序托管于/,博客应用程序托管于/blog。我想将AspNetCoreModuleV2与InProcess托管模型一起使用。但是,它无法启动,并且我在事件日志中看到此错误:

<Event>
<System>
<Provider Name="IIS AspNetCore Module V2"/>
<EventID>1008</EventID>
<Level>1</Level>
<Task>0</Task>
<Channel>Application</Channel>
...
</System>
<EventData>
<Data>
Only one inprocess application is allowed per IIS application pool. Please assign the application '/LM/W3SVC/170746742/ROOT/api' to a different IIS application pool.
</Data>
<Data>Process Id: 20236.</Data>
<Data>
File Version: 12.2.18296.0. Description: IIS ASP.NET Core Module V2. Commit: 61f1a70784dc0a32cf98f8ddd169c0293b0390ab
</Data>
</EventData>
</Event>
Run Code Online (Sandbox Code Playgroud)

如何使用InProcess托管模型在App Services中运行多个虚拟应用程序?

Pet*_*Pan 7

不。事件日志中的错误信息已回答,

<EventData> <Data> 每个 IIS 应用程序池只允许一个进程内应用程序。请将应用程序“/LM/W3SVC/170746742/ROOT/api”分配给不同的 IIS 应用程序池。 </Data>

在您在同一个 Azure WebApp 中运行多个虚拟应用程序的场景中,只有一个应用程序可以在托管模型中运行in-process,其他应用程序可以在web.config文件中配置为out-of-processvia Kestrel,如下所示,请在此处查看更多详细信息ASP.NET Core Module

注意:hostingModel=" OutOfProcess "

<?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=".\MyApp.dll" 
                  stdoutLogEnabled="false" 
                  stdoutLogFile=".\logs\stdout" 
                  hostingModel="OutOfProcess" />
    </system.webServer>
  </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)