首页 新闻 会员 周边 捐助

.net core 如何只允许同一台机器上同一个console程序只能启动一个?

0
[待解决问题]

.net core 如何只允许同一台机器上同一个console程序只能启动一个?

碎豆芽的主页 碎豆芽 | 菜鸟二级 | 园豆:225
提问于:2017-09-26 08:45
< >
分享
所有回答(2)
0

我学习Core的时间不长,如果说的不对希望大神能指正

在Framework中一般是采用进程名称或者启动文件名比对的方法来实现的。

但是Core运行在dotnet.exe上的一个dll包。也就是说,即使启动多个项目,进程的名称都是dotnet,也就没法做比对。总不能运行一个dotnet程序后其他的都不能运行了啊。旧的思路不能用了。

换个思路。

旧版QQ有一个监听进程, 防止同一个账号在同一台机器上启动两个QQ进程。或许我们可以借鉴这种机制。

程序在启动的时候占用一个最不常用的端口,比如90000,然后在其他相同应用启动的时候,检查端口占用情况,如果被占用则证明启动了相同的程序,退出。没有则正常启动,并占用端口。

写代码的相声演员 | 园豆:517 (小虾三级) | 2017-09-28 12:58
0

.net-core 中都是以console 来运行的,

你的问题是同一个console程序只能启动一个,

那么举个简单的例子,我有.net-core web站点,有 .net-core webapi 站点,那么我是不是只能运行一个呢?
而且.net core 运行时是根据端口号来的,每个程序运行时对应着唯一的一个端口号。

BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-10-09 13:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册