使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例

摘要:
本章主要和大家分享下如何使用cmd命令行来启动ASP.NETCore应用程序的多个实例,以此来模拟集群。.NETCore命令行接口工具是用于开发、生成、运行和发布.NETCore应用程序的跨平台工具链。dotnetwatchrun-pNETCoreCLI.csproj--urls=http://*:8080此外还有一个命令主要是用来启动发布后的应用,如下所示:PS:使用该命令启动的方式,一旦修改了代码就需要停止,然后重新生成发布,最后重新启动。

本章主要和大家分享下如何使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例,以此来模拟集群。

.NET Core 命令行接口 (CLI) 工具是用于开发、生成、运行和发布 .NET Core 应用程序的跨平台工具链。

CLI 命令结构包含驱动程序(“dotnet”)和命令,还可能包含命令参数和选项。

话不多说,下面我们进入本章主题:

首先我们来建个MVC的项目(目标框架:.NET Core 3.1),如下所示:

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第1张

进入项目文件.csproj所在的目录

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第2张

输入cmd后按Enter键就可以快速进入到指定目录

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第3张

dotnet run //.NET Core CLI命令 无需任何显式编译或启动命令即可运行源代码。

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第4张

这样子就算是启动成功了,使用dotnet run命令启动默认端口号是launchSettings.json中设置的5000

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第5张

我们使用5000端口在浏览器中访问看下是否真的启动成功了

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第6张

可以看到确实是启动成功了

此时我们可以按Ctrl + C来停止程序,停止成功如下所示:

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第7张

此时你如果不想使用5000端口,可以使用--urls命令参数来指定具体的端口,例如:

dotnet run --urls=http://*:8080

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第8张

同样的操作可以多开几个命令行窗口,这样子就可以做到同一套代码,启动不同进程,监听不同端口,以此来模拟集群了,如下所示。

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第9张

上面我们开了2个cmd界面,分别启动了一个实例,端口号分别为8080和8081,下面我们就可以使用这2个端口号访问了

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第10张

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第11张

可以发现我们用这2个端口号都访问成功了

此外还可以运行指定的项目

dotnet run -p NETCoreCLI.csproj //一个“-”是简称的p
dotnet run --project NETCoreCLI.csproj //两个“-”是全称的project

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第12张

此处输入NETCoreCLI.csproj有个小技巧,就是输入一个N后按Tab键就会自动补齐,这样子就不用一个个字输入了。

PS:需要特别注意的是上面介绍的启动方式,一旦修改了程序代码则都需要使用Ctrl+C停止后重新启动。

当然有个小技巧就是加watch自动监听程序代码的修改,一旦修改了代码就会自动重启。

dotnet watch run -p NETCoreCLI.csproj --urls=http://*:8080

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第13张

此外还有一个命令主要是用来启动发布后的应用,如下所示:

PS:使用该命令启动的方式,一旦修改了代码就需要停止,然后重新生成发布,最后重新启动。

dotnet [解决方案bin文件下的dll文件] --urls=http://*:8080
dotnet NETCoreCLI.dll --urls=http://*:8080

如果使用该命令直接启动没有发布的应用则可能有些资源文件就访问不到了,如下:

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第14张

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第15张

此时虽然可以启动成功但是有些资源访问不到,如下所示:

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第16张

故该命令主要是用来启动发布后的应用,如下所示:

首先我们将项目发布下,点击项目 => 右键 => 选择发布

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第17张

选择IIS、FTP等

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第18张

选择文件系统

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第19张

然后进行发布

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第20张

最后使用命令启动发布后的应用

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第21张

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第22张

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第23张

可以看到启动成功了

PS:

使用命令行方式启动程序同样也是可以支持附加到进程进行调试的。可以尝试将w3wp.exe或者dotnet.exe又或者是应用程序.exe附加到进程进行调试。

其中应用程序.exe如下所示:

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第24张

使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例第25张

本文涉及到的.NET Core CLI命令小结

dotnet run
dotnet run --urls=http://*:8080  //urls指定ip和端口
dotnet watch run  //watch监听程序修改,一旦修改则重新启动
dotnet watch run --urls=http://*:8080
dotnet run -p NETCoreCLI.csproj  //一个“-”是简称的p
dotnet run --project NETCoreCLI.csproj  //两个“-”是全称的project
dotnet watch run -p NETCoreCLI.csproj --urls=http://*:8080
dotnet [解决方案bin文件下的dll文件] --urls=http://*:8080
dotnet NETCoreCLI.dll --urls=http://*:8080
dotnet clean  //清除项目的默认生成,与VS中的右键清理效果是一样的
Ctrl + C  //停止
cls  //清除屏幕
Tab键  //自动补齐

PS:

详细的.NET Core CLI可参考官网:https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-run

此文由博主精心撰写转载请保留此原文链接https://www.cnblogs.com/xyh9039/p/13155059.html

版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!!

免责声明:文章转载自《使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CheckBox实现跨页面多选KendoGrid基础下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

随笔编号-10 window环境下,命令行导入sql脚本详解

目标:使用window命令行(DOS)导入sql脚本(适用于数据量很大的脚本). 执行步骤: 1 找到mysql bin 文件所在之目录: 2 打开dos命令行界面,win+r 组合键打开运行对话框,输入 cmd 进入DOS界面: 3 使用命令进入bin 所在路径: C:administrator> cdC:Program FilesMySQLM...

大规模请求下,Linux 服务器连接数优化设置

作者:heiyeluren 一般一个大规模Linux服务器请求数可能是几十万上百万的情况,需要足够的连接数来使用,所以务必进行相应的设置。 默认的Linux服务器文件描述符等打开最大是1024,用 ulimit -a 查看: [viewuser@~]$ ulimit -acore file size          (blocks, -c) 0   #c...

github中git bash基础命令行

今天来讲一下关于github命令行相关知识。呵呵,其实github都没太明白就把git bash摆上来当道菜。看来,我有当程序员的天赋,让我再装一会。 前提:你已经在github上已经注册了账号。 特别注意: 括号内均为提示信息 1、常用命令行工具: ①cmd ②powershell ③git bash 2、命令行常用命令(在git bash上生效,部分在...

windows7命令行终端获取管理员模式随笔

非常感谢http://wenku.baidu.com/view/d0e8d2d2240c844769eaee8a.html 背景:       安装了windows7系统后发现有很多命令在命令行模式下运行不了说没有管理员权限,其实我们在安装系统的过程创建的用户也是一个一般管理员的用户,在平时的工作中系统默认不采用管理员权限来运行程序的,所以有些命令运行不了...

Shell终端收听音乐--网易云音乐命令行版

Musicbox:网易云音乐命令行版本 高品质网易云音乐命令行版本,简洁优雅,丝般顺滑,基于Python编写。 这款命令行的客户端使用 Python 构建,以 mpg123 作为播放后端: Vim 式的流畅操作,支持快捷键绑定 支持电台、收藏等各种特色功能 支持 OS X 及各类 Linux 发行版 安装Python2.* pacman -S pytho...

winrar命令行加压解密

加密的操作 Rar.exe a -P123 test1.rar test.txt 其中参数a表示添加文件或文件夹到压缩包中,-P参数表示是带密码的加密 Rar.exe e -P123 test1.rar c: est 其中参数e表示解压缩压缩包到指定的文件夹或文件中,不指定参数就表示解压缩到当前命令行所在的文件夹中,-P参数表示是带密码的解密...