本文旨在指導從未接觸過linux的.net開發者,如何在centos7上安裝.net core環境,并部署.net core應用程序。
本指南僅適用于centos,其他linux發行版的命令可能需要稍作調整。
在開始之前,請確保已準備好服務器地址、用戶名和密碼。如果您沒有Linux系統,可以使用新生命團隊提供的公網服務器centos.newlifex.com。
新生命團隊的netcore服務器免費開放計劃
一、準備工作
在windows開發機上安裝xshell和xftp,前者用于通過ssh連接Linux服務器,后者用于FTP文件傳輸。
打開xshell,創建一個新連接,名稱和主機都填寫centos.newlifex.com(實際使用時應替換為您的Linux服務器地址或域名),其他選項保持默認,如下:
點擊連接后,會彈出SSH安全警告,您需要接受并保存SSH密鑰。
接受后,系統會要求輸入用戶名,這里我們輸入root,并選擇記住用戶名。
然后輸入密碼,新生命團隊開放服務器本周的密碼是nx@1250407685。
為了方便,我們同樣選擇記住密碼。
連接成功后,您可以在左側會話管理器中看到剛才創建的連接,這在管理多個Linux服務器時非常方便。
我們可以嘗試一些可能用到的命令:
使用w命令查看當前連接到服務器的用戶。下圖顯示只有我自己連接。
使用free -h命令查看服務器內存使用情況。下圖顯示已使用內存119M,Linux在這方面表現非常出色。
使用top命令查看系統進程資源占用情況,類似于Windows任務管理器,定時刷新,按Q鍵退出。
共63個進程,只有1個在運行,系統非常干凈。不過下方看到有一個Java進程,后續我們會處理掉它。
使用ps aux命令查看進程詳細信息。
我們發現那個java進程來自cloudmonitor,應該是云監控服務。
二、安裝環境
我們是為了.NET Core而來,主要任務是安裝運行時環境。
為了方便和一勞永逸,我們采取快捷方式,先看看我的配置:
打開xshell的快速命令工具欄,然后添加幾組快捷命令:
按鈕“.Net Core”(注意:最后一行命令后面必須有一個換行,否則最后命令無法得到執行,下同)
按鈕“.Net Core SDK”
按鈕“Asp.Net Core”
按鈕“卸載.Net Core”
具體功能就不介紹了,來源于:https://www.php.cn/link/9d88196d9b43925ec4093e0228fd7803
我們嘗試第一個按鈕,安裝.NET Core運行時,不包括ASP.NET Core和.NET Core SDK。
上圖顯示,已安裝.NET Core運行時2.1.1。
您可以使用卸載按鈕,然后再安裝另外兩個,看看有什么不同。
三、部署應用
使用visual studio 2017新建一個.NET Core控制臺項目。
在NuGet中引用NewLife.Core,建立一個稍微高級一點的示例。
代碼語言:JavaScript 代碼運行次數:0
運行 復制 “`javascript Static void Main(String[] args) { XTrace.Useconsole(); var svr = new ApiServer(1234) { Log = XTrace.Log, EncoderLog = XTrace.Log, StatPeriod = 5 }; var ns = svr.EnsureCreate() as NetServer; ns.SocketLog = XTrace.Log; ns.SessionLog = XTrace.Log; ns.LogSend = true; ns.LogReceive = true; svr.Start(); Console.ReadKey(); } “`
如上,我們使用ApiServer建立一個rpc服務,并打開所有調試日志,它內置有兩個服務接口,方便測試RPC通信。
編譯并發布為可移植應用程序:
我們會得到一個包含dll文件和runtimeconfig.json文件的目錄,這些是運行所必需的文件。
使用xshell連接到服務器,這里可以是centos.newlifex.com。
在xshell工具欄上有一個綠色圖標,點擊打開xftp,左窗口地址欄進入剛才的發布目錄,右窗口新建/root/ApiServer目錄,并將左邊的必要文件拖到右邊,即可實現上傳!
回到xshell中,使用cd ApiServer進入目錄,執行dotnet ConsoleApp5.dll即可運行應用程序(前提是已安裝.NET Core運行時)。
客戶端使用碼神工具XCoder(https://www.php.cn/link/88275708422d0942423446f76b49e8fb Core應用程序已成功在CentOS上運行。
僅僅運行還不夠,有時候我們還需要查看應用程序的工作日志。仍然使用xftp,刷新右側窗口,可以看到多出了Log目錄,這就是我們的應用程序日志,右鍵傳輸即可下載到本地,當然也可以簡單直接地拖到左邊。
使用vscode打開日志文件,可以看到非常詳細的信息,特別是日志頭部,有助于分析和查找問題。
四、總結
這篇面向Linux零基礎的Windows工程師的極簡教程終于寫完了,基本上足以應對八成以上的日常工作。
其他更多細節,可以在網上找到,例如如何將應用程序安裝為服務、如何實現開機啟動等等。
綜合過去20年編寫代碼的經驗,.NET Core具有極強的優勢,盡管存在一些小問題,但我必須說,只要微軟不放棄,我堅決不放棄!
我是大石頭,從1999年開始,19年的老碼農。目前在快遞行業從事數據分析架構工作,分析路上的上億包裹。歡迎大家一起探索C#大數據!
End.