一般來說,發布ASP.NET Core的應用程式部署到伺服器上會經過以下動作
首先須先使用dotnet publish
將網站發布到指定的資料夾中dotnet publish
如果加上參數 -o <資料夾名稱>
會輸出到指定的目錄底下,如果沒特別指定則會輸出至bin/Debug/netcoreapp3.1/publish
底下。也可以透過--configuration
參數來指定發佈的組態,例如dotnet publish --configuration Release
,就會將檔案發佈到bin/Release/netcoreapp3.1/publish
底下。
發布出來的檔案可以透過SCP或是SFTP來放到伺服器上
首先要在伺服器上裝載ASP.NET Core應用程式,就必須要安裝 .NET Core Runtime,可以透過下載頁面,或是直接透過套件管理的指定來下載
以CentOS 7 為範例:
sudo yum install aspnetcore-runtime-3.1
安裝完畢之後便可以透過 .NET CLI 啟動部署好的ASP.NET Core應用程式
在部屬的目錄底下輸入
dotnet <專案名稱>.dll
因為ASP.NET Core自帶Kestrel Server,所以不需要透過其他HTTP Server就可以啟動網站應用程式了。
備註:要先檢查防火牆的指定Port是否有開啟
做到這邊相信各位朋友一定嘗試連接自己部署的網站應用程式了,但是奇怪的是,為什麼已經啟動了,外部還是無法連進網站。
那是因為目前啟動的網站只允許localhost做存取,所以無法讓其他非本地的使用者訪問,這時候我們就要將啟動的指令做些變更
ASPNETCORE_URLS="https://*:5001" dotnet <專案名稱>.dll
透過這個指令,可以讓直接訪問ip或是domain name的使用者能夠順利存取到網站
請問大大,aspnetcore-runtime如果使用網站載下來後,該解壓縮到哪個資料夾才能作動呢?
請問你是用Linux嗎
A大,是的,我是使用Deaian版本,發布的問題已經解了,但我又遇到另一個狀況,目前可以在Localhost瀏覽網頁,但在撈取資料庫Table的頁面,直接錯誤,是不是我少準備到某個步驟,讓他和資料庫無法連接?
能否提供錯誤訊息讓我參考,可以比較快查出問題
A大您好,謝謝你的回覆,我最後發現是單純網段沒設定好,問題已解決,謝謝A大~~