【发布时间】:2022-07-26 04:27:41
【问题描述】:
我正在做我的第一个 Angular 项目。带有 WEB Api 后端的 Angular 前端都可以按预期在本地工作,是否有最佳实践或最佳方法可以一次性为 IIS 部署前端和后端?我宁愿不需要单独部署它们。
【问题讨论】:
-
我们通常将构建输出部署到 IIS 网站的根目录,并在我们部署 Web API 后端的子文件夹(大部分是 /api)中创建一个虚拟应用程序。但是,需要两个单独的部署。我建议不要将 Angular SPA 打包到 ASP.NET Core 项目中,因为必须分离可以独立开发/更新的代码库具有更好的灵活性。
-
谢谢,想了想,还是分开比较有意义。但是,我在从 Angular 应用程序调用 WEB API 时遇到问题,这两个应用程序现在都在 IIS 上的单独部署中。
-
IIS中无论是站点还是站点下的子应用,都无法一次性部署,除非使用web deploy编写通用脚本实现一键部署。
having issues calling the WEB API from the Angular app独立站点使用独立域,这是 CORS 错误吗?还是其他错误? -
正如@BruceZhang 提到的,如果应用程序和 API 托管在不同的来源下,CORS 可能是连接问题的根源。如果您将 API 托管在应用程序下方的虚拟应用程序中,则可以避免这种情况。否则,您需要配置您的 API 以允许来自应用程序源的请求(请参阅docs.microsoft.com/en-us/aspnet/core/security/…)。
-
我遇到了 CORS 错误,我将以下内容添加到了我的 WebAPI Program.cs 文件中,并且在我发布后它就可以工作了。谢谢大家的回复。
app.UseCors(builder => builder .AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod() );
标签: c# angular .net-core iis deployment