C# Azure上部署的.Net Core 3.1 Web应用程序显示错误HTTP错误500.35-ANCM同一进程中的多个进程内应用程序

C# Azure上部署的.Net Core 3.1 Web应用程序显示错误HTTP错误500.35-ANCM同一进程中的多个进程内应用程序,c#,azure,.net-core-3.1,C#,Azure,.net Core 3.1,我已经在Azure中部署了一个web应用程序,使用最新的.net core 3.1堆栈,该应用程序被分为3个虚拟应用程序,在同一个web应用程序部署下运行,这似乎是导致问题的原因,因为我可以访问根目录上的主应用程序,但当我尝试访问任何虚拟路径时,即:显示以下错误: HTTP错误500.35-ANCM同一进程中的多个进程内应用程序 这一问题的共同解决办法: 选择其他应用程序池以创建另一个进程内应用程序。 ANCM检测到的特定错误: 每个IIS应用程序池只允许一个进程内应用程序。请将应用程序“/LM

我已经在Azure中部署了一个web应用程序,使用最新的.net core 3.1堆栈,该应用程序被分为3个虚拟应用程序,在同一个web应用程序部署下运行,这似乎是导致问题的原因,因为我可以访问根目录上的主应用程序,但当我尝试访问任何虚拟路径时,即:显示以下错误:

HTTP错误500.35-ANCM同一进程中的多个进程内应用程序 这一问题的共同解决办法:

选择其他应用程序池以创建另一个进程内应用程序。 ANCM检测到的特定错误: 每个IIS应用程序池只允许一个进程内应用程序。请将应用程序“/LM/W3SVC/1848604257/ROOT/business”分配到其他IIS应用程序池。 故障排除步骤: 检查系统事件日志中的错误消息 启用记录应用程序进程的stdout消息 将调试器附加到应用程序进程并检查 有关更多信息,请访问:

查看Microsoft引用的页面,显示的此错误信息如下:

500.35 ANCM同一过程中的多个过程中应用 工作进程不能在同一进程中运行多个进程内应用程序

若要修复此错误,请在单独的IIS应用程序池中运行应用程序

所以我的问题是,有没有一种方法可以在.NETCore3.1下为azure中的单个web应用程序将多个web应用程序部署到虚拟路径中?或者这是对.Net Core 3.1的限制,应用程序应该部署到单独的web应用程序中


谢谢

最后我向Microsoft询问了这个错误以及如何在Azure平台上解决这个问题,他们指出解决方案是将您的web应用程序以及部署的任何其他虚拟应用程序从“进程内”托管模式改为“进程外”,您可以找到有关这意味着什么的更多信息,但本质上要实现这一点,您需要向每个项目文件(.csproj)添加以下值:


进程外
在Azure上部署后,通过验证您的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=".\MyApp.dll"
                  stdoutLogEnabled="false"
                  stdoutLogFile=".\logs\stdout"
                  hostingModel="OutOfProcess" />
    </system.webServer>
  </location>
</configuration>

<?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>