我学习Core的时间不长,如果说的不对希望大神能指正
在Framework中一般是采用进程名称或者启动文件名比对的方法来实现的。
但是Core运行在dotnet.exe上的一个dll包。也就是说,即使启动多个项目,进程的名称都是dotnet,也就没法做比对。总不能运行一个dotnet程序后其他的都不能运行了啊。旧的思路不能用了。
换个思路。
旧版QQ有一个监听进程, 防止同一个账号在同一台机器上启动两个QQ进程。或许我们可以借鉴这种机制。
程序在启动的时候占用一个最不常用的端口,比如90000,然后在其他相同应用启动的时候,检查端口占用情况,如果被占用则证明启动了相同的程序,退出。没有则正常启动,并占用端口。
.net-core
中都是以console
来运行的,
你的问题是同一个
console
程序只能启动一个,
那么举个简单的例子,我有.net-core web
站点,有 .net-core webapi
站点,那么我是不是只能运行一个呢?
而且.net core 运行时是根据端口号来的,每个程序运行时对应着唯一的一个端口号。