c# - 如何在同一URL下托管多个.NET Core应用

标签 c# asp.net iis deployment asp.net-core

我正在asp.net核心中构建一些网站(多个用户界面应用程序和一个Web API应用程序)。他们都利用Web API一起工作。就我的问题而言,我们将其称为App1,App2和App3。我将网站托管在IIS中。

通常,在旧的.net Framework(4.5.1)中,我将在IIS中拥有一个网站,其中包含多个Web应用程序来承载多个应用程序。像这样:

  • WebSite1-在端口443上运行
  • App1
  • App2
  • App3

  • 如果网站(WebSite1)在端口443上运行(使用SSL证书),则意味着可以通过一个域网址访问所有应用,如下所示:
  • https://www.myapp.com/App1/
  • https://www.myapp.com/App2/
  • https://www.myapp.com/App3/

  • 网址末尾使用不同的应用名称来标识它们。

    当托管新的asp.NET Core应用程序时,我也托管在IIS中,并按照asp.NET Core网站部署的文档,将每个.NET Core Web应用程序托管在IIS中的另一个站点中。

    因为我所有站点都有一个域名,例如https://www.example.com(我使用的是SSL证书),所以我必须给其他网站提供不同的端口。所以我最终得到这样的东西:
  • WebSite1-在端口443上运行
  • WebSite2-在端口444上运行
  • WebSite3-在端口445上运行

  • 然后,可以通过以下域名URL访问所有这些应用程序:
  • https://www.example.com/https://www.example.com:443/
  • https://www.example.com:444/
  • https://www.example.com:445/

  • 如何将一个网站上的asp.NET Core应用程序托管为不同的“应用程序”,这意味着它们解析为相同的域名url(https://www.example.com和正斜杠应用程序名称标识我们想要的应用程序)?或者,如何使用端口配置我现在配置的所有路由并将它们全部路由,因此app1是example.com/的默认值,App 2是example.com/app2/的值,App 3是example.com/app3/的值?

    我是否完全以错误的方式看待此.NET Core部署?

    在此先感谢您的指导!

    最佳答案

    您可以使用反向代理为同一域上的多个ASP Net Core应用程序提供服务。
    我不确定使用IIS,但是您需要安装URL Rewrite,然后按照Microsoft提供的documentation进行操作(而且this one应该会有所帮助)。
    您还可以按照以下方式使用nginxlocation使用proxy_pass:

    ...
    Some nginx Configuration 
    location /App1 {
            proxy_pass http://127.0.0.1:443;
        }
    location /App2 {
            proxy_pass http://127.0.0.1:444;
        }
    location /App3 {
            proxy_pass http://127.0.0.1:445;
        }
    Other configurations...
    

    然后,每次要向域中添加另一个ASP Net应用程序时,都需要添加另一个位置,在其他位置运行该应用程序,然后重新启动nginx。

    关于c# - 如何在同一URL下托管多个.NET Core应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42348511/

    相关文章:

    c# - 如何在没有 Visual Studio 的情况下使用自定义脚本添加/更新引用?

    android - SignalR:从数据库向用户ID发送消息

    c# - Viewstate 列表在 GridView 中单击行编辑时丢失数据

    java - 登录后无法从 OpenAM 获取 uid

    asp.net - 替代 IIS for Windows 运行 ASP.NET

    Azure Web 应用程序错误? Web.config 变得重复

    c# - Linq 查询一个集合内的集合、来自另一个集合的集合

    c# - 如何跨多个帐户使用 Outlook 插件捕获已发送的项目?

    c# - 如何将 Paypal 与 WinForm 桌面应用程序集成

    c# - 验证 GUID 作为参数