iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
1
Modern Web

我與 ASP.NET Core 的 30天系列 第 29

[Day29] 部署網站 - 我與 ASP.NET Core 3 的 30天

  • 分享至 

  • xImage
  •  

一般來說,發布ASP.NET Core的應用程式部署到伺服器上會經過以下動作

  1. 將發布的應用程式部署到伺服器上的資料夾。
  2. 設置一個進程管理器,當請求到達時啟動該應用程序,並在崩潰或伺服器重新啟動後重新啟動該應用程式。
  3. 要配置反向代理,設置反向代理以將請求轉發到應用程式。

發布至資料夾

首先須先使用dotnet publish將網站發布到指定的資料夾中
dotnet publish 如果加上參數 -o <資料夾名稱> 會輸出到指定的目錄底下,如果沒特別指定則會輸出至bin/Debug/netcoreapp3.1/publish底下。也可以透過--configuration參數來指定發佈的組態,例如dotnet publish --configuration Release,就會將檔案發佈到bin/Release/netcoreapp3.1/publish底下。
發布出來的檔案可以透過SCP或是SFTP來放到伺服器上

在Linux上裝載ASP.NET Core

首先要在伺服器上裝載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的使用者能夠順利存取到網站


上一篇
[Day28] 組態設定 - 我與 ASP.NET Core 3 的 30天
下一篇
[Day30] 持續整合與部署 - 我與 ASP.NET Core 3 的 30天
系列文
我與 ASP.NET Core 的 30天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
andow1198
iT邦新手 4 級 ‧ 2021-11-04 16:19:52

請問大大,aspnetcore-runtime如果使用網站載下來後,該解壓縮到哪個資料夾才能作動呢?

看更多先前的回應...收起先前的回應...
ATai iT邦新手 2 級 ‧ 2021-11-07 23:38:58 檢舉

請問你是用Linux嗎

andow1198 iT邦新手 4 級 ‧ 2021-11-08 09:02:16 檢舉

A大,是的,我是使用Deaian版本,發布的問題已經解了,但我又遇到另一個狀況,目前可以在Localhost瀏覽網頁,但在撈取資料庫Table的頁面,直接錯誤,是不是我少準備到某個步驟,讓他和資料庫無法連接?

ATai iT邦新手 2 級 ‧ 2021-11-08 16:26:30 檢舉

能否提供錯誤訊息讓我參考,可以比較快查出問題

andow1198 iT邦新手 4 級 ‧ 2021-11-08 16:40:23 檢舉

A大您好,謝謝你的回覆,我最後發現是單純網段沒設定好,問題已解決,謝謝A大~~/images/emoticon/emoticon54.gif

我要留言

立即登入留言