Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在同一Azure Web App服务中托管多个应用程序?_Azure_Asp.net Core_Azure Web App Service - Fatal编程技术网

如何在同一Azure Web App服务中托管多个应用程序?

如何在同一Azure Web App服务中托管多个应用程序?,azure,asp.net-core,azure-web-app-service,Azure,Asp.net Core,Azure Web App Service,我想托管两个ASP.NET核心应用程序,一个Web API和一个Blazor服务器应用程序,但我在互联网上搜索,找到的答案只针对一个应用程序内部的不同路径,这不是我的情况。我想将它们用作同一Azure Web应用程序的子地址,例如:www.example.com和www.example.com/api,其中每一个都是不同的.NET核心应用程序。所以我怀疑我需要创建两个Azure应用程序服务,并尝试将它们两者进行通信,但我想知道的结构化应用程序可能不会以这种方式工作,对吗?我怎样才能做到这一点呢?

我想托管两个ASP.NET核心应用程序,一个Web API和一个Blazor服务器应用程序,但我在互联网上搜索,找到的答案只针对一个应用程序内部的不同路径,这不是我的情况。我想将它们用作同一Azure Web应用程序的子地址,例如:www.example.comwww.example.com/api,其中每一个都是不同的.NET核心应用程序。所以我怀疑我需要创建两个Azure应用程序服务,并尝试将它们两者进行通信,但我想知道的结构化应用程序可能不会以这种方式工作,对吗?我怎样才能做到这一点呢?

我的设置和你的一样;一个ASP.NET核心web API和一个Blazor服务器端应用程序

由于您希望为这两个服务使用相同的域,如果您要将请求路由到两个不同的Azure应用程序服务,则必须使用Azure API管理或其他代理

一个更简单的选择是将两个服务部署到同一个应用程序服务上,但要尽可能多。您可以正常发布Blazor应用程序,但对于Web API,您将发布到新的虚拟应用程序
/API

要启用此虚拟应用程序,请导航到应用程序服务中的配置映射,然后导航到路径映射。这里已经有了指向
站点\wwwroot
的默认虚拟应用程序
/
。然后添加另一个名为
/api
的虚拟应用程序,指向
site\wwwroot\api

添加虚拟应用程序时,请记住删除目录的复选框(改为虚拟应用程序),并可以选择启用预加载:

如果您使用Azure DevOps管道发布应用程序,则它可以选择是否应使用默认值以外的其他应用程序

您现在可以导航到两个不同的URL并点击每个服务。请注意,在开发Web API时,不应将
API
添加到控制器路由,因为此虚拟应用程序会为您这样做