1. 河豚號(hào) > 生活百科 >

netsarang是什么軟件(infuse使用教程)

本文為大家介紹使用 .NET Core部署到Linux服務(wù)器的方法,通過本文你將了解到Linux在虛擬機(jī)下的安裝、Xshell,Xftp的使用方法、git在linux下的交互使用以及.net core在linux下的發(fā)布與運(yùn)行全過程,本文皆在總結(jié)了一些經(jīng)驗(yàn)與筆記在部署過程中遇到的一些問題,同時(shí)分享給大家,供大家參考,歡迎討論交流。

1、Linux操作系統(tǒng)、Xshell、Xftp安裝

操作系統(tǒng)可選擇你比較熟悉的Linux發(fā)行版,如果你是第一次接觸Linux,推薦使用CentOs,因?yàn)楸疚牡膬?nèi)容都是在CentOs中進(jìn)行演示的。

至于系統(tǒng)的安裝,你可以選擇云服務(wù)器,或者使用虛擬機(jī)安裝。虛擬機(jī)安裝CentOs的方式可以參考:一網(wǎng)打盡,一文講通虛擬機(jī)安裝及Linux使用

1.1、Xshell連接工具

我們推薦使用XShell作為連接工具,下載地址:https://www.netsarang.com/zh/xshell-download/

Xshell是一個(gè)強(qiáng)大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺(tái)的TELNET 協(xié)議。Xshell 通過互聯(lián)網(wǎng)到遠(yuǎn)程主機(jī)的安全連接以及它創(chuàng)新性的設(shè)計(jì)和特色幫助用戶在復(fù)雜的網(wǎng)絡(luò)環(huán)境中享受他們的工作。

Xshell可以在Windows界面下用來訪問遠(yuǎn)端不同系統(tǒng)下的服務(wù)器,從而比較好地達(dá)到遠(yuǎn)程控制終端的目的。除此之外,其還有豐富的外觀配色方案以及樣式選擇。

安裝完成后,打開軟件,點(diǎn)擊左上角的新建回話按鈕,打開新建回話屬性,如下圖所示:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

在【主機(jī)】中填寫服務(wù)器的ip地址,相應(yīng)的用戶與密碼設(shè)置好,然后點(diǎn)擊【連接】按鈕。連接成功的界面如下所示:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

1.2、Xftp文件上傳工具

外部與Linux服務(wù)文件交互可以使用Xftp工具上傳或git倉庫中轉(zhuǎn)等其他方法,本文會(huì)演示使用Xftp與git倉庫兩種方式進(jìn)行代碼文件的中轉(zhuǎn)。Xftp工具,下載地址:https://www.netsarang.com/zh/xftp-download/

Xftp是一個(gè)功能強(qiáng)大的SFTP、FTP 文件傳輸軟件。使用了 Xftp 以后,MS Windows 用戶能安全地在 UNIX/Linux 和 Windows PC 之間傳輸文件。

安裝完成后,可以通過XShell一鍵打開Xftp,Xftp打開后,在軟件的右側(cè)可以切換要上傳文件的目標(biāo)路徑,然后將文件拖到右側(cè)釋放后,就會(huì)自動(dòng)上傳了。

1.3、使用git倉庫進(jìn)行中轉(zhuǎn)

相對(duì)開發(fā)來說,使用Git倉庫中轉(zhuǎn)的方式是我們推薦的使用方式,在頻繁地迭代更新中,先在本地編譯發(fā)布后,再將文件拷貝到服務(wù)器,這個(gè)操作流程稍顯繁瑣。而通過git倉庫來中轉(zhuǎn)的方式則相對(duì)比較簡單,開發(fā)者僅需要將開發(fā)好的代碼推送(push)到git倉庫,然后在服務(wù)器中執(zhí)行build,publish等操作,減少了繁瑣的拷貝文件的過程,因?yàn)閎uild和publish都是在服務(wù)器中執(zhí)行,可以通過編寫shell部署腳本的方式,最終實(shí)現(xiàn)一鍵快速部署。

要使用git需要在服務(wù)器安裝git客戶端,并配置ssh公鑰(配置公鑰的目的是拉取私有的倉庫,公開的倉庫無需配置公鑰)。

下面講解具體的操作步驟:

首先安裝git客戶端,執(zhí)行如下命令:

yum -y install git

在安裝過程如果出現(xiàn)錯(cuò)誤:Couldn’t resolve host

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

一般是因?yàn)镈NS服務(wù)器沒有配置正確,解決辦法:

1、打開文件/etc/resolv.conf在其中添加:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

2、退出保存后重啟網(wǎng)絡(luò):

service network restart

git安裝后,通過如下命令生成sshkey:

# 這里的xx@xxx.com只是生成的sshkey的名稱,并不約束貨要求具體命名為某個(gè)郵箱。

ssh-keygen -t rsa -C "xx@xxx.com"

按照提示,按三次回車,即可生成sshkey,如下圖所示:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

通過如下命令可查看公鑰:

cat ~/.ssh/id_rsa.pub

復(fù)制生成后的sshkey,配置到代碼倉庫的公鑰中。

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

公鑰已經(jīng)生成,如何在代碼托管平臺(tái)進(jìn)行配置呢?

接下來我們將學(xué)習(xí)如何在gitee代碼托管平臺(tái)下配置公鑰(github類似)。

進(jìn)入私有倉庫的【管理】頁面,找到【公鑰管理】,點(diǎn)擊【添加公鑰】,將剛剛生成的公鑰復(fù)制過去,如下圖所示:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

出現(xiàn)類似于Hi xxx的字樣,則表示git公鑰配置成功了。

ssh -T git@gitee.com

次使用需要確認(rèn)并添加主機(jī)到本機(jī)SSH可信列表,如下圖所示:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

輸入yes后,出現(xiàn)類似于Hi xxx的字樣,則表示git公鑰配置成功了。

2、安裝.NET Core SDK與運(yùn)行時(shí)

在前面我們已經(jīng)做好了部署前的準(zhǔn)備工作,安裝了xshell、xftp、git、對(duì)倉庫配置了公鑰等。

接下來我們將在linux服務(wù)器上安裝.net core sdk。

.NET運(yùn)行時(shí)是.NET程序運(yùn)行的先決條件,而SDK并不是必須的,但如果通過git方式進(jìn)行文件中轉(zhuǎn)的話,就需要到在服務(wù)器端進(jìn)行編譯,所以SDK也需要安裝。(注:docker部署方式無需在服務(wù)器安裝SDK和運(yùn)行時(shí),在后面的文章中我們介紹)

下面一起看看在CentOs中如何安裝SDK和運(yùn)行時(shí)(其他環(huán)境可參考官方文檔:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux)。

在安裝 .NET 之前,我們需要將 Microsoft 包簽名密鑰添加到受信任密鑰列表,并添加 Microsoft 包存儲(chǔ)庫。如果之前安裝過.NET Core3.1 ,那么這個(gè)步驟可以省略

運(yùn)行如下命令,將 Microsoft 包簽名密鑰添加到受信任密鑰列表,并添加 Microsoft 包存儲(chǔ)庫。

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

通過如下命令安裝SDK:

sudo yum install -y dotnet-sdk-5.0

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

.NET Core SDK 使你可以通過 .NET Core來 開發(fā)我們的應(yīng)用。

安裝完成后,可以驗(yàn)證安裝。

dotnet –info

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

通過如下命令安裝netcore運(yùn)行時(shí):

sudo yum install -y aspnetcore-runtime-5.0

注:上述命令中的最后的5.0表示的是版本號(hào),如果安裝其他版本如:3.1,修改對(duì)應(yīng)的版本號(hào)即可。參考資料:https://dotnet.microsoft.com/download/dotnet-core

如果已經(jīng)安裝了安裝 .NET Core SDK,則無需安裝相應(yīng)的運(yùn)行時(shí),在上面我們已經(jīng)安裝了sdk,在安裝運(yùn)行時(shí)會(huì)提示已經(jīng)安裝,如下圖所示。

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

3、發(fā)布程序到服務(wù)器

在前面的準(zhǔn)備工作中我們介紹了兩種將文件發(fā)布到服務(wù)器的方式,分別為:xftp與git,下面我們分別演示這兩種方式的方法與步驟。

3.1、通過Xftp發(fā)布到服務(wù)器

首先,準(zhǔn)備好要發(fā)布的程序,

下圖是我創(chuàng)建的一個(gè).NET5.0的示例代碼:

 

NET Core部署到linux最全解決方案,常規(guī)篇
NET Core部署到linux最全解決方案,常規(guī)篇

 

可以通過打開vs的程序包管理器控制臺(tái),執(zhí)行如下命令進(jìn)行發(fā)布:

dotnet publish -o ./publish

也可以右鍵項(xiàng)目發(fā)布,發(fā)布到文件夾中,如下圖所示。

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

在這兒需要注意的是框架依賴部署模式,因?yàn)橹拔覀円呀?jīng)安裝了.NET Core環(huán)境,這里就不使用獨(dú)立部署模式了,默認(rèn)也就是“框架依賴”。

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

框架依賴部署:

依賴框架的部署 (FDD) 依賴目標(biāo)系統(tǒng)上存在共享系統(tǒng)級(jí)版本的 .NET Core。 由于已存在 .NET Core,因此應(yīng)用在 .NET Core 安裝程序間也是可移植的。 應(yīng)用僅包含其自己的代碼和任何位于 .NET Core 庫外的第三方依賴項(xiàng)。 FDD 包含可通過在命令行中使用 dotnet 使用程序啟動(dòng)的 .dll 文件。 例如,dotnet app.dll 就可以運(yùn)行一個(gè)名為 app 的應(yīng)用程序。

對(duì)于 FDD,僅部署應(yīng)用程序和第三方依賴項(xiàng)。 不需要部署 .NET Core,因?yàn)閼?yīng)用將使用目標(biāo)系統(tǒng)上存在的 .NET Core 版本。 這是定目標(biāo)到 .NET Core 的 .NET Core 和 ASP.NET Core 應(yīng)用程序的默認(rèn)部署模型

優(yōu)點(diǎn):

①、不需要提前定義 .NET Core 應(yīng)用將在其上運(yùn)行的目標(biāo)操作系統(tǒng)。 因?yàn)闊o論什么操作系統(tǒng),.NET Core 的可執(zhí)行文件和庫都是用通用的 PE 文件格式,因此,無論什么基礎(chǔ)操作系統(tǒng),.NET Core 都可執(zhí)行應(yīng)用。

②、部署包很小。 只需部署應(yīng)用及其依賴項(xiàng),而無需部署 .NET Core 本身。

③、許多應(yīng)用都可使用相同的 .NET Core 安裝,從而降低了主機(jī)系統(tǒng)上磁盤空間和內(nèi)存使用量。

缺點(diǎn):

①、僅當(dāng)主機(jī)系統(tǒng)上已安裝你設(shè)為目標(biāo)的 .NET Core 版本或更高版本時(shí),應(yīng)用才能運(yùn)行。

②、如果不了解將來版本,.NET Core 運(yùn)行時(shí)車庫可能發(fā)生更改。 在極少數(shù)情況下,這可能會(huì)更改應(yīng)用的行為。

獨(dú)立部署:

獨(dú)立部署 (SCD) 不依賴目標(biāo)系統(tǒng)上存在的共享組件。 所有組件(包括 .NET Core 庫克 .NET Core 運(yùn)行時(shí))都包含在應(yīng)用程序中,并且獨(dú)立于其他 .NET Core 應(yīng)用程序。 SCD 包括一個(gè)可執(zhí)行文件(如 Windows 平臺(tái)上名為 app 的應(yīng)用程序的 app.exe),它是特定于平臺(tái)的 .NET Core 主機(jī)的重命名版本,還包括一個(gè) .dll 文件(如 app.dll),而它是實(shí)際的應(yīng)用程序。

對(duì)于獨(dú)立部署,可以部署應(yīng)用和所需的第三方依賴項(xiàng)以及生成應(yīng)用所使用的 .NET Core 版本。 創(chuàng)建 SCD 不包括各種平臺(tái)上的 .NET Core 本機(jī)依賴項(xiàng),因此運(yùn)行應(yīng)用前這些依賴項(xiàng)必須已存在

優(yōu)點(diǎn):

①、可以對(duì)與應(yīng)用一起部署的 .NET Core 版本具有單獨(dú)的控制權(quán)

②、目標(biāo)系統(tǒng)可以運(yùn)行你的 .NET Core 應(yīng)用,因?yàn)槟闾峁┑氖菓?yīng)用將在其上運(yùn)行的 .NET Core 版本

缺點(diǎn):

①、由于 .NET Core 包含在部署包中,因此必須提前選擇為其生成部署包的目標(biāo)平臺(tái)

②、部署包相對(duì)較大,因?yàn)樾枰獙?.NET Core 和應(yīng)用及其第三方依賴項(xiàng)包括在內(nèi)。

③、向系統(tǒng)部署大量獨(dú)立的 .NET Core 應(yīng)用可能會(huì)使用大量磁盤空間,因?yàn)槊總€(gè)應(yīng)用都會(huì)復(fù)制 .NET Core 文件

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

在上圖可以看到,發(fā)布之后的文件的路徑為:bin/Release/net5.0/publish/

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

打開Xftp,將publish文件夾拖到Xftp右側(cè)窗口,即可完成上傳。

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

切換到發(fā)布的目錄,啟動(dòng)運(yùn)行,如下圖所示,成功運(yùn)行。

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

也可以指定端口

#啟動(dòng)站點(diǎn),自定義端口號(hào),運(yùn)行環(huán)境

dotnet Core50Test.dll --urls="http://*:8081;http://*:8082" --environment=Development

這里urls配置,如果需要局域網(wǎng)或者外網(wǎng)訪問,不能填成urls=”http://localhost:8081;http://localhost:8082″

3.2、通過git中轉(zhuǎn)發(fā)布

首先,將代碼推送到git倉庫中,復(fù)制SSH地址。如下圖所示:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

然后在服務(wù)器中,執(zhí)行克隆命令:

mkdir core50test

cd core50test

git clone git@gitee.com:******/core50test.git

執(zhí)行結(jié)果如下圖所示:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

此時(shí)項(xiàng)目代碼已經(jīng)下載到服務(wù)器中,切換工作目錄到解決方案所在的目錄。

cd core50test

然后執(zhí)行dotnet publish命令對(duì)程序進(jìn)行編譯發(fā)布。

dotnet publish -o /yonghu/web/publish

執(zhí)行完畢后,編譯發(fā)布后的文件將被保存在/yonghu/web/publish目錄中。

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

將工作目錄切換到/yonghu/web/publish,執(zhí)行如下命令:

dotnet core50test.dll

執(zhí)行結(jié)果如下圖:

 

NET Core部署到linux最全解決方案,常規(guī)篇

 

到這里為止,咱們的程序已經(jīng)在linux服務(wù)器運(yùn)行起來了。

NET Core部署到linux最全解決方案,常規(guī)篇

 

RDIFramework.NET

通過上在的介紹,相信很多小伙伴已經(jīng)對(duì).netcore項(xiàng)目到linux的發(fā)布有了深刻的認(rèn)識(shí)了,但這些操作還是略顯繁瑣,啟動(dòng)、停止、摘取等都是單獨(dú)的去處理,下次文章我們將介紹通過配置使用Supervisor+Nginx,以及shell腳本來實(shí)現(xiàn).net core的高效部署。

本文由網(wǎng)上采集發(fā)布,不代表我們立場,轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/40686.html

聯(lián)系我們

在線咨詢:點(diǎn)擊這里給我發(fā)消息

微信號(hào):15705946153

工作日:9:30-18:30,節(jié)假日休息