本章主要和大家分享下如何使用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
著作權宣告:如有雷同純屬巧合,如有侵權請及時聯系本人修改,謝謝!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/9708.html
標籤:.NET Core
