【发布时间】:2017-02-20 15:33:06
【问题描述】:
我正在 ASP.NET Core 中构建一些网站(多个用户界面应用程序和一个 WebAPI 应用程序)。它们都使用 WebAPI 协同工作。就我的问题而言,我们将它们称为 App1、App2 和 App3。我在 IIS 中托管我的网站。
通常,在旧的 .NET Framework (4.5.1) 中,我会在 IIS 中拥有一个网站,其中包含多个 Web 应用程序来托管我的多个应用程序。像这样:
- WebSite1 - 在端口 443 上运行
-
应用程序1
-
应用程序2
-
App3
-
如果网站 (WebSite1) 在端口 443 上运行(使用 SSL 证书),这意味着所有应用都可以通过一个域 url 访问,如下所示:
在 URL 末尾使用不同的应用名称来识别它们。
当托管新的 ASP.NET Core 应用程序时,我也在 IIS 中托管,并按照 ASP.NET Core 网站部署的文档,我将每个 .NET Core Web 应用程序托管在 IIS 内的不同站点中。
由于我的所有网站都有一个域名,例如https://www.example.com(我使用的是 SSL 证书),因此我必须为其他网站提供不同的端口。所以我最终得到了这样的结果:
-
WebSite1 - 在端口 443 上运行
-
WebSite2 - 在端口 444 上运行
-
WebSite3 - 在端口 445 上运行
所有这些应用程序都可以通过这些域名 URL 访问:
如何将所有 ASP.NET Core 应用程序作为不同的“应用程序”托管在一个网站下,这意味着它们解析为相同的域名(https://www.example.com 和正斜杠应用程序名称标识我们想要的应用程序)?或者,我如何使用我现在配置的端口并将它们全部路由,以便 App1 是 example.com/ 的默认值,App 2 是 example.com/app2/,而 App 3 是 example.com/app3/?
我是否以完全错误的方式看待这个 .NET Core 部署?
【问题讨论】:
-
您是否尝试过 Windows 上的 WebListener 或反向代理(IIS (windwos) 或 nginx (linux))?
-
我没有@Tseng - 我以前从未真正使用过它,但我现在将运行一个快速的谷歌!
标签: c# asp.net iis deployment asp.net-core