本章主要和大家分享下如何使用cmd命令行(.NET Core CLI)來啟動ASP.NET Core 應用程序的多個實例,以此來模擬集群。
.NET Core 命令行接口 (CLI) 工具是用於開發、生成、運行和發布 .NET Core 應用程序的跨平台工具鏈。
CLI 命令結構包含驅動程序(“dotnet”)和命令,還可能包含命令參數和選項。
話不多說,下面我們進入本章主題:
首先我們來建個MVC的項目(目標框架:.NET Core 3.1),如下所示:
進入項目文件.csproj所在的目錄
輸入cmd后按Enter鍵就可以快速進入到指定目錄
dotnet run //.NET Core CLI命令 無需任何顯式編譯或啟動命令即可運行源代碼。
這樣子就算是啟動成功了,使用dotnet run命令啟動默認端口號是launchSettings.json中設置的5000
我們使用5000端口在瀏覽器中訪問看下是否真的啟動成功了
可以看到確實是啟動成功了
此時我們可以按Ctrl + C來停止程序,停止成功如下所示:
此時你如果不想使用5000端口,可以使用--urls命令參數來指定具體的端口,例如:
dotnet run --urls=http://*:8080
同樣的操作可以多開幾個命令行窗口,這樣子就可以做到同一套代碼,啟動不同進程,監聽不同端口,以此來模擬集群了,如下所示。
上面我們開了2個cmd界面,分別啟動了一個實例,端口號分別為8080和8081,下面我們就可以使用這2個端口號訪問了
可以發現我們用這2個端口號都訪問成功了
此外還可以運行指定的項目
dotnet run -p NETCoreCLI.csproj //一個“-”是簡稱的p dotnet run --project NETCoreCLI.csproj //兩個“-”是全稱的project
此處輸入NETCoreCLI.csproj有個小技巧,就是輸入一個N后按Tab鍵就會自動補齊,這樣子就不用一個個字輸入了。
PS:需要特別注意的是上面介紹的啟動方式,一旦修改了程序代碼則都需要使用Ctrl+C停止后重新啟動。
當然有個小技巧就是加watch自動監聽程序代碼的修改,一旦修改了代碼就會自動重啟。
dotnet watch run -p NETCoreCLI.csproj --urls=http://*:8080
此外還有一個命令主要是用來啟動發布后的應用,如下所示:
PS:使用該命令啟動的方式,一旦修改了代碼就需要停止,然后重新生成發布,最后重新啟動。
dotnet [解決方案bin文件下的dll文件] --urls=http://*:8080 dotnet NETCoreCLI.dll --urls=http://*:8080
如果使用該命令直接啟動沒有發布的應用則可能有些資源文件就訪問不到了,如下:
此時雖然可以啟動成功但是有些資源訪問不到,如下所示:
故該命令主要是用來啟動發布后的應用,如下所示:
首先我們將項目發布下,點擊項目 => 右鍵 => 選擇發布
選擇IIS、FTP等
選擇文件系統
然后進行發布
最后使用命令啟動發布后的應用
可以看到啟動成功了
PS:
使用命令行方式啟動程序同樣也是可以支持附加到進程進行調試的。可以嘗試將w3wp.exe或者dotnet.exe又或者是應用程序.exe附加到進程進行調試。
其中應用程序.exe如下所示:
本文涉及到的.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
版權聲明:如有雷同純屬巧合,如有侵權請及時聯系本人修改,謝謝!!!