我已使用最新的.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应用程序中?
谢谢
答案 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>