在同一主机和端口下运行多个应用程序

问题描述 投票:1回答:1

我正在一个解决方案中开发多个asp.net核心应用程序,当我使用IIS Express在Visual Studio中运行解决方案时,希望将它们放在同一个URL和端口下。例如:

我试图更改lauchSettings.json文件以使用相同的主机和URL,但随后出现服务器无法运行的错误。

有没有办法配置它?

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:44369/App2",
      "sslPort": 44369
    }
  },
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "App2": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "https://localhost:5001;http://localhost:5000"
    }
  }
}
c# visual-studio iis asp.net-core iis-express
1个回答
1
投票

这是不可能的,并且是一个完美的例子,说明为什么网络开发人员应该熟悉他们打算开发的实际平台,即:HTTP和TCP / IP协议,坦率地说,套接字通常如何工作,这个案例。

计算机之间的通信通过各种协议在端口上进行该通信通过数据包发生,类似于邮件中发送的信件。与信件一样,数据包被寻址,这允许接收计算机将其路由到正确的目的地。当它到达最终目标计算机时,该计算机还必须将其路由到它所指向的应用程序或设备。这部分类似于发送给企业的邮件。所有邮件都会传递到组织的某个中心部分,然后将其路由到其预定的特定员工。

对于类似Web应用程序的内容,上述场景中的“员工”由URL和/或端口标识。从技术上讲,它始终是URL和端口,但两者都可以是“默认”。因此,只有一个端口假定0.0.0.0或分配给该计算机的所有IP地址的集合,并且只是URL假定默认协议端口(HTTP为80,HTTPS为443)。无论如何,该组合必须有一个唯一的收件人。再次回到办公室的比喻,想象两个员工在办公室的房间号码上分享办公室和一封邮件。你怎么知道它实际上注定的两名员工中的哪一位?你不能。实际上,它更像是两个名字相同的员工共用办公室。即使你有员工的名字,你仍然不知道将它交给谁。

简而言之,你想要的东西是不可能的,如果你真正了解你正在开发的平台,这显然是不可能的,坦率地说,这是任何类型开发的先决条件。每个应用程序必须使用唯一的URL,唯一的端口或两者。没有其他选择。

© www.soinside.com 2019 - 2024. All rights reserved.