如何在一个Azure Web App上托管多个应用程序

时间:2018-10-25 19:41:02

标签: asp.net angular azure model-view-controller web-applications

我构建了应用程序(ASP .NET Core MVC + Angular)。我需要为三个不同的客户部署此应用程序。此刻每个客户都有自己的数据库。一个Azure Web应用程序中是否可以有多个站点(例如mysite.com/a、mysite.com/b和mysite.com/c),并且每个站点都有自己的连接字符串?还是应该使用路径1客户-1 Web应用程序? Tnx

2 个答案:

答案 0 :(得分:4)

虽然可能有一种方法可以将您的应用程序部署到同一App Service。肯定会涉及到编辑Kudu构建脚本。我不知道那里有多少细节可以使它正常工作。

但是,如果您为每个客户使用1个App Service,则应该能够在每个App Service中使用每个客户的数据库连接字符串设置环境变量。这样,您可以在代码中引用该环境变量,因此不必为每个客户使用不同的数据库连接字符串重新编译。若要在Azure App Service中创建环境变量,请在Azure门户中转到您的应用程序。然后,从侧栏中选择“应用程序设置”。向下滚动到“应用程序设置名称”,您应该能够使用每个应用程序服务中每个客户的数据库连接字符串创建应用程序设置。

有关如何执行此操作的更多信息,请查看Stack Overflow上的这篇文章。

另一个选择是为每个客户创建一个带有新广告位的应用服务。他们都将从主应用程序服务继承其设置。在每个子应用程序服务中,您都可以设置有槽位的应用程序设置,该设置仅适用于该槽位。但是,这与您创建3个单独的App Services的前一个选项非常相似。 more information此处介绍如何使用插槽式App Services。它旨在用作创建暂存和生产环境的一种方式。

答案 1 :(得分:1)

我不确定是否有多个站点作为子目录。

您可以做的是设置1个标准App Service计划,并在该计划中设置多个App Services,然后使用子域指向这些App Services(CustomerA.mysite.com,CustomerB.mysite.com)。在一个应用程序服务计划中设置多个应用程序服务无需支付额外费用。

这有一些优点。您可以使用Azure的应用程序设置管理,可以使用部署槽,并且可以一次更新每个客户的生产环境1,从而在其他人运行稳定代码的同时进行1个客户Beta测试。