.net核心程序集不能在linux上同时运行



我编写了一个用于在linux上运行的dotnet核心应用程序。发布了启用自包含的单个可执行文件。

dotnet publish -c Release -r linux-x64 -o ${dst_path} -v n /p:PublishTrimmed=true /p:PublishSingleFile=true

但奇怪的是,它只能运行一个实例。因为当它运行时,它将删除文件的执行权限。

$ ./Test
10/21/2020 11:50:27 AM [Info] Server started at ws://0.0.0.0:12500 (actual port 12500)
$ ls -l Test  <---------Test is running, ls -l is executed in another terminal
-rw-rw-rw- 1 root root 53081298 10月 21 11:50 Test

并且在运行进程退出后,执行权限被添加回。

$ ls -l Test  <------------Test is not running.
-rwxrwxrwx 1 root root 53081298 10月 21 11:50 Test

所以我不能开始一个以上的过程。

我真的对这个问题感到困惑。有人能帮忙吗?

很抱歉打扰了,我找到了根本原因。

万一其他人也会遇到同样愚蠢的情况,请在这里留言。

我的问题是由病毒箱引起的。因为我将已发布的程序集Test放在共享虚拟机之间主机的共享目录中。

将我的文件Test移动到虚拟机的主目录后,它运行良好。

感谢您的帮助@jdoer1997

最新更新