【问题标题】:Configure AspNetCoreModuleV2 in process for multiple virtual apps in Azure App Services在 Azure 应用服务中为多个虚拟应用配置 AspNetCoreModuleV2
【发布时间】:2019-01-18 04:14:07
【问题描述】:

我在 Azure App Services 上托管了 ASP.NET Core 应用程序,作为同一个 App Services 实例中的两个虚拟应用程序。主站点应用程序托管在/,博客应用程序托管在/blog。我想将 AspNetCoreModuleV2 与 InProcess 托管模型一起使用。但是,它无法启动,我在事件日志中看到此错误:

<Event>
<System>
<Provider Name="IIS AspNetCore Module V2"/>
<EventID>1008</EventID>
<Level>1</Level>
<Task>0</Task>
<Channel>Application</Channel>
...
</System>
<EventData>
<Data>
Only one inprocess application is allowed per IIS application pool. Please assign the application '/LM/W3SVC/170746742/ROOT/api' to a different IIS application pool.
</Data>
<Data>Process Id: 20236.</Data>
<Data>
File Version: 12.2.18296.0. Description: IIS ASP.NET Core Module V2. Commit: 61f1a70784dc0a32cf98f8ddd169c0293b0390ab
</Data>
</EventData>
</Event>

如何使用 InProcess 托管模型在应用服务中运行多个虚拟应用程序?

【问题讨论】:

    标签: azure asp.net-core .net-core azure-web-app-service


    【解决方案1】:

    不。事件日志中的错误信息已经回答,

    <EventData> <Data> 每个 IIS 应用程序池只允许一个进程内应用程序。请将应用程序“/LM/W3SVC/170746742/ROOT/api”分配给不同的 IIS 应用程序池。 &lt;/Data&gt;

    在您在同一个 Azure WebApp 中运行多个虚拟应用程序的方案中,只有一个应用程序可以在托管模型中以 in-process 运行,其他应用程序可以在 web.config 文件中配置为 out-of-process 通过 Kestrel ,如下面,请在此处查看更多详细信息ASP.NET Core Module

    注意:hostingModel="OutOfProcess"

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

    【讨论】:

    • 不幸的是,我认为你是对的。我希望我们可以为每个虚拟应用程序建立一个应用程序池或使其正常工作。
    • 使用单独的应用程序池解决了我的问题,但如果在发布时只为非 InProcess 应用程序添加 hostingModel="OutOfProcess" 而不是在 web.config 上将其留空,会更好。
    猜你喜欢
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 2017-11-16
    • 2016-10-31
    • 1970-01-01
    • 2019-06-24
    相关资源
    最近更新 更多