作者:幕三少
連結:https://www.cnblogs.com/smiler/p/10149603.html
環境
-
本地 win7
-
伺服器:Virtual Box 上的Centos
-
ssh工具: Xshell
-
檔案傳輸: xftp
一、在本地建立asp.net core應用釋出
1.1、使用VS 2017 新建一個ASP.NET Core專案
步驟略(一路next),當然你也可以用命令列建立。
1.2 、釋出專案
在專案路徑下執行命令
dotnet publish –c release
先本地執行是否有問題,減少因為本地程式造成釋出不成功的機率。程式就簡單介紹一下,下麵部署是管件。
二、安裝NET Core SDK
2.1、環境準備
我這裡是在VirtualBox上安裝的Centos.
1、需要首先記錄一點,就是虛擬機器最小化安裝CentOS 7 預設沒有啟動網路配置,所以是不能上網的。
接下來就透過vi命令編輯網絡卡配置檔案ifcfg-enp0s3(其他版本名稱可能略有不同,但路徑一致)。具體命令如下
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
將ONBOOT=no改為ONBOOT=yes,設定隨系統開機執行。然後:wq強制儲存並退出編輯檔案即可。
最後,需要重啟一下網路服務。命令如下:
service network restart
然後ping www.baidu.com 檢查是否可以正常上網了。
這時就可以用xshell連線伺服器。
2、最小化安裝同樣沒有ifconfig等網路命令,這裡為了方便可以安裝net-tools工具包
yum update
yum install net-tools
2.2、安裝.NET Core SDK
2.2.1、安裝libicu依賴
yum install libunwind libicu
2.2.2、註冊dotnet 的repository
您需要註冊Microsoft簽名金鑰並新增Microsoft產品提要
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
2.2.3、安裝
sudo yum update
sudo yum install dotnet-sdk-2.2
2.2.4、安裝完成
dotnet --info
微軟官方參考:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial
參考:https://blog.csdn.net/u012920852/article/details/79404433
2.2.5、釋出程式測試
這裡先將剛開始釋出的程式透過xftp傳輸到centos伺服器上,進入程式檔案夾。
執行程式
dotnet MyApp.dll
但是報錯了,如下圖
這裡說明一下:因為本地使用的sdk2.1,所以我沒選最高版本,而是yum search dotnet-sdk,選的是顯示的2.1的最高版本,也就是dotnet-skd-2.1.4。
以為是服務端的sdk版本太,但是透過dotnet –info檢視本地版本,如下圖:
服務端如下:
顯然是伺服器端安裝的版本太低了。所以重新安裝了2.2版本,
然後再執行
顯示執行成功。這裡耽誤了好一會時間。
測試
curl http://locahost:5000/api/values
可以正常獲取資訊了
但是遠端瀏覽器訪問,無法訪問。這就怪了,為啥呢?
伺服器上用ip地址訪問:
curl http://10.100.15.17:5000/api/values
也是不通,最後才發現,原來預設是無法透過ip訪問。(有大神知道原因可以知道一下)
然後關閉重新啟動,加上url引數
dotnet MyApp.dll --server.urls="http://*:5000"
此時再透過IP訪問,OK透過。
本地瀏覽器訪問,OK也透過。
好了這裡就可以正常使用,當然測試沒問題了,生產絕對不能這樣搞。下邊還要使用nginx,以及守護程式之類的。
朋友會在“發現-看一看”看到你“在看”的內容