gpt4 book ai didi

angular - 在 IIS 默认网站下托管 .Net Core 应用和 Angular 应用

转载 作者:行者123 更新时间:2023-12-03 16:35:33 24 4
gpt4 key购买 nike

我正在使用带 Angular ASP.net 核心样板。我尝试在 IIS localhost 下分别托管 Angular 和 .NET 核心网站这两个应用程序,没有问题。
:
但是当我想在公共(public)上部署我的应用程序时,我遇到了这个问题:
1- 我只有一个重定向到 IIS 默认网站的公共(public) IP,每个应用程序都有不同的端口。
**因此,前端和后端都应托管在具有不同端口的 IIS 默认网站下。

这适用于 .NET 核心和 Angular 吗?**

更新

这是我的 appsetting.json

{

"ConnectionStrings": {
"Default": "Server=localhost\\SQLEXPRESS; Database=MyDb;User Id=admin;Password=1234"
},
"App": {
"ServerRootAddress": "http://localhost:21021/",
"ClientRootAddress": "http://localhost:4200/",
"CorsOrigins": "http://localhost:4200,http://localhost:8080,http://localhost:8081,http://localhost:3000"
},
"Authentication": {
"JwtBearer": {
"IsEnabled": "true",
"SecurityKey": "MyApp_C421AAEE0D114E9C",
"Issuer": "MyApp",
"Audience": "MyApp"
}
}
}

更新 2

Angular web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension="woff" mimeType="application/font-woff" />
<mimeMap fileExtension="woff2" mimeType="application/font-woff" />
</staticContent>
<!-- IIS URL Rewrite for Angular routes -->
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Angular appconfig.production.json
{
"remoteServiceBaseUrl": "http://localhost:21021",
"appBaseUrl": "http://localhost:4200",
"localeMappings": [
{
"from": "pt-BR",
"to": "pt"
},
{
"from": "zh-CN",
"to": "zh"
},
{
"from": "he-IL",
"to": "he"
}
]
}

最佳答案

以下是一些步骤:

先决条件

Client Alias=> 需要在 iis 中添加应用程序的客户端应用程序的路径名

服务别名 => 需要在 iis 中添加应用程序的服务应用程序的路径名

  • 下载适用于 Windows 的 .NET Core 3.0 Runtime & Hosting Bundle,或者您可以根据您的项目找到确切的版本
    https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-3.0.0-windows-hosting-bundle-installer
  • 为了在临床内容编辑器中设置 Angular 8 基础架构,需要安装 IIS 扩展“URL Rewrite” https://www.iis.net/downloads/microsoft/url-rewrite

  • 前端:
  • 建立你的 Angular 跑 ng build --prod --base-href=/client-alias/
  • 转到 IIS 中的默认网站
  • 添加应用程序
  • 添加别名并指向您的 的物理路径距离 Angular 应用程序中的文件夹
  • 你可以测试这个 http://localhost/client-alias

    后端 ( https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-3.1#create-the-iis-site )
  • 发布 API 项目,以便我们可以将内容复制到 API 服务的新 Web 应用程序。
  • 使用 .net CLR 版本创建应用程序池 无托管代码
  • 在 IIS 中为 API 服务创建一个新的 Web 应用程序,其中在步骤 9 中添加了应用程序池,在步骤 8 中添加了已发布文件夹的物理路径。

  • 现在这两个应用程序以 http://127.0.0.1/client-alias 的身份运行。和 http://127.0.0.1/service-alias

    您可以在不打开其他端口的情况下公开您的 IP(8080)。

    关于angular - 在 IIS 默认网站下托管 .Net Core 应用和 Angular 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61190857/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com