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

时间:2019-12-09 17:21:33

标签: c# azure .net-core-3.1

我已使用最新的.net core 3.1堆栈将Web应用程序部署到Azure中,该应用程序分为在同一Web应用程序部署下运行的3个虚拟应用程序,这似乎是导致此问题的原因,我可以访问位于根http://mywebapp/index.html上的主应用程序,但是当我尝试访问任何虚拟路径IE:http://mywebapp/virtualapp/index.html时,将显示以下错误:

  

HTTP错误500.35-同一进程中的多个ANCM进程内应用程序   此问题的常见解决方案:

     

选择另一个应用程序池以创建另一个进程内应用程序。   ANCM检测到的特定错误:   每个IIS应用程序池仅允许一个进程内应用程序。请将应用程序“ / LM / W3SVC / 1848604257 / ROOT / business”分配给其他IIS应用程序池。   故障排除步骤:   检查系统事件日志中是否有错误消息   启用记录应用程序进程的标准输出消息   将调试器附加到应用程序进程并检查   有关更多信息,请访问:https://go.microsoft.com/fwlink/?LinkID=2028526

浏览Microsoft引用的页面,显示此错误的信息是:

  

500.35 ANCM在同一过程中有多个进程内应用程序   工作进程无法在同一进程中运行多个进程内应用。

     

要解决此错误,请在单独的IIS应用程序池中运行应用程序。

所以我的问题是,在.Net Core 3.1下,是否有一种方法可以将多个Web应用程序部署到Azure中单个Web应用程序的虚拟路径中?还是这是对.Net Core 3.1的限制,应该将应用程序部署到单独的Web应用程序中?

谢谢

1 个答案:

答案 0 :(得分:0)

我最终向微软询问了此错误以及如何在Azure平台上解决此错误,他们指出解决方案是将Web应用程序以及从“ InProcess”托管模型部署的任何其他虚拟应用程序更改为“ OutOfProcess” “,您可以找到有关here的含义的更多信息,但要实现此目的,您需要在每个项目文件(.csproj)中添加以下值:

<PropertyGroup>
  <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>

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