基本上这需要完成以下步骤才能使其正常工作。
解决方案包含
i) sampleApp.API(.Net Core Web API) 将部署在子文件夹中
ii)sampleApp.UI(Angular App)
为两个应用程序设置 Azure 门户
1) 在 azure 门户中转到您的 Web 应用 -> 设置 -> 配置
2) 选择路径映射并在此处为子站点创建新的映射条目。添加此条目时不要选择目录复选框以将其保留为虚拟应用程序类型。点击保存
**Virtual Path:** /{folderName} **physicalPath:** /site/wwwroot/{folderName}
3) 现在转到 VS2017 右键单击您的 API 项目并单击发布
4) 在发布设置窗口中将路径设为
site name : existing + "/{folderName} "
DestinationUrl : existing + "/{folderName} "
5) 现在 ng-build --prod 您的 Angular 应用程序并部署 dist/clientApp 文件夹并使用根路径发布。
所以现在两者都应该像
angular app https://{AzureAppName}.azurewebsites.net
Web API https://{AzureAppName}.azurewebsites.net/{folderName}/api/{controllerName}/{action}
如果用户在访问 api 项目或收到错误代码 502 时仍然遇到“无法从 web.config 读取配置数据”问题,则
为此,请在您的 API 项目中转到 startup.cs 并将配置函数更改为具有以下代码行
app.Map('/{folderName}', app1 => Configure1(app1, loggerFactory);
并创建名为 configure1 的配置函数的空白副本,然后如上所述重新部署您的 API 项目。
public void Configure1(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
//keep it blank
}