【发布时间】:2018-05-22 04:14:34
【问题描述】:
我正在将平台从 MVC 5 转移到核心 2.0, 项目需要多个具有自定义域的初创公司。
我的启动项目的 Url 是:
- https://agent.webz.local:44343/
- https://superAgent.webz.local:44343/
- https://client.webz.local:44343/
- https://general.webz.local:44343/
- https://agentAPI.webz.local:44343/
如果我单独运行项目,则没有错误,但是,当我在多个启动模式下启动项目时,只有第一个在工作,其他项目返回以下错误。
无法启动进程 C:\Program Files\dotnet\dotnet.exe。网络 服务器请求失败,状态码为 500。无法启动进程 C:\Program Files\dotnet\dotnet.exe。 Web 服务器请求失败 状态码 503,服务不可用。
*相同的域在 MVC-5 上运行良好。
如果我确实将端口 44343 更改为 4434X,那么问题就不会出现。
有没有办法用同一个端口启动多个项目。
【问题讨论】:
-
没有。一次只能有一个应用程序绑定到一个端口,如果强制绑定,行为是不确定的。使用多播套接字,只要在每个套接字的选项中设置了
SO_REUSEADDR,就可以将多个应用程序绑定到一个端口。您可以通过编写一个“主”进程来完成此操作,该进程接受并处理所有连接,然后将它们交给需要在同一端口上侦听的两个应用程序。这是 Web 服务器等采用的方法,因为许多进程需要监听 80。 -
您的评论是关于 .net-core 的吗?因为现在我有多个具有公共端口的启动项目在 MVC-5 上运行良好,没有任何问题。 ***我的知识水平不足以轻松理解这些东西。
-
使用 MVC5,您实际上在该端口上启动了一个 IIS Express。 .net Core 上没有 IIS。
-
哦,是的,我刚开始阅读有关 kestral 的文章!