我已经将一个 Web 应用程序部署到我们的 Azure 中,使用最新的 .net core 3.1 堆栈,该应用程序分为 3 个虚拟应用程序,在同一 Web 应用程序部署下运行,这似乎是导致问题的原因,我可以访问主应用程序位于根目录http://mywebapp/index.html http://mywebapp/index.html但是当我尝试访问任何虚拟路径 IE 时:http://mywebapp/virtualapp/index.html http://mywebapp/virtualapp/index.html显示以下错误:
HTTP 错误 500.35 - ANCM 同一进程中有多个进程内应用程序
此问题的常见解决方案:
选择不同的应用程序池来创建另一个进程内应用程序。
ANCM 检测到的具体错误:
每个 IIS 应用程序池仅允许一个进程内应用程序。请将应用程序“/LM/W3SVC/1848604257/ROOT/business”分配给不同的 IIS 应用程序池。
故障排除步骤:
检查系统事件日志中的错误消息
启用记录应用程序进程的标准输出消息
将调试器附加到应用程序进程并检查
欲了解更多信息,请访问:https://go.microsoft.com/fwlink/?LinkID=2028526 https://go.microsoft.com/fwlink/?LinkID=2028526
查看 Microsoft 引用的页面,该错误显示的信息是:
500.35 ANCM 同一进程中的多个进程内应用程序
工作进程不能在同一进程中运行多个进程内应用程序。
要修复此错误,请在单独的 IIS 应用程序池中运行应用程序。
所以我的问题是,有没有办法在 .Net Core 3.1 下处理部署到 azure 中单个 Web 应用程序的虚拟路径中的多个 Web 应用程序?或者这是 .Net Core 3.1 的限制并且应用程序应该部署到单独的 Web 应用程序中?
谢谢
我最终向 Microsoft 询问了此错误以及如何在 Azure 平台上解决此问题,他们指出解决方案是将您的 Web 应用程序以及从“InProcess”托管模型部署的任何其他虚拟应用程序更改为“OutOfProcess”,您可以找到有关这意味着什么的更多信息here https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-3.1但本质上要实现此目的,您需要将以下值添加到每个项目文件 (.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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)