【发布时间】:2020-03-07 05:18:30
【问题描述】:
我们目前正在尝试上传两个 ASP .NET Core 3 简单的 Web 应用程序。
一个是生成令牌的 IdentityServer4 应用程序,而另一个有一些 API 端点,并依赖第一个进行身份验证。
我们需要将它们都发布在有其他应用程序的同一个应用程序池下,因为我们有一个 https 证书。我们已经安装了 asp net core 3 托管套件。
仅上传一个身份验证应用程序就可以正常工作。上传它们都会在访问第二个时生成错误500.35 ANCM Multiple In-Process Applications in same Process。 This error's description is quite clear(好像我们不能在同一个池中托管两个进程内应用程序),所以我们尝试将这两个应用程序配置为 OutOfProcess,通过将以下行添加到我们的 .csproj 文件中
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
根据我的阅读,这应该在我们的 IIS 和调用者之间插入一个 Kestrel Web 服务器。但是现在,对于他们两个,我们得到的错误都是502.5 - ANCM Out-Of-Process Startup Failure。
我在任何地方都没有找到任何日志,除了 Window 的事件日志,它报告了这个失败:
物理根目录为“C:\inetpub\wwwroot\XXX\”的应用程序“/LM/W3SVC/1/ROOT/XXXXX”无法使用命令行“dotnet.\XXXXXXXXX.dll”启动进程并重试多次.无法绑定到端口“10352”。多次重试捕获的 stdout 和 stderr 日志的前 30KB 字符:
仅此而已。
在这一点上,任何想法都会非常感激。 :)
谢谢大家,祝你有美好的一天。
【问题讨论】:
-
为什么你需要为多个应用程序使用同一个应用程序池?如果您使用进程外托管,则每个实例无论如何都会产生自己的进程。 HTTPS 证书与此有什么关系?
-
一个简单的问题,为什么它们必须在同一个池中?
-
@poke 我们的 IT 经理告诉我,在 IIS 上拥有另一个应用程序池意味着要购买和上传另一个带有另一个 HTTPS 证书的子域。他错了吗?
-
所以您想在同一个主机名/域上托管多个应用程序,但使用不同的虚拟路径?
-
好的,我为每个应用程序创建了一个应用程序池,它现在可以工作了。不需要另一个子域和证书。 :) 谢谢你们的帮助!
标签: c# asp.net-core asp.net-web-api identityserver4 asp.net-core-3.0