iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
Software Development

讓 C# 也可以很 Social - 在 .NET 6 用 C# 串接 LINE Services API 的取經之路系列 第 26

[Day 26] .NET 6 C# 與 Line Services API 開發 - 在 Centos 部署 .Net Core API (Kestrel)

  • 分享至 

  • xImage
  •  
tags: .NET6 C#, LineBot, Line Messaging API, C#, dotnet core

[Day 26] 讓 C# 也可以很 Social - .NET 6 C# 與 Line Services API 開發 - 在 Centos 部署 .Net Core API (Kestrel)

前言

Line bot 的功能介紹及實例開發在上一篇就告一段落了, 之前我們都是透過 ngrok 提供一串外部可存取的網址連線到本地端,但是在程式開發到一個階段後,實務上我們還是需要建立自己的一個 server 提供固定的 ip 對外連結供使用者使用,這篇文章會介紹如何將 .net 6 部署上 Linux (Centos)

發佈專案

首先我們需要將程式編譯並且發佈到資料夾,這邊介紹兩個發佈的方式

方法一 : 直接透過 Visual Studio Core 做發布的動作

https://ithelp.ithome.com.tw/upload/images/20221002/20151616ebQUviU2Bi.png
https://ithelp.ithome.com.tw/upload/images/20221002/20151616pv2RfLXxfj.png

方法二 : 透過 terminal 的指令,在專案根目錄下執行 publish 的指令

  • -c : 指定發佈時對應的組態設定,如果沒有設定預設為 Debug
  • -o : 指定發佈的資料夾路徑,如果沒有設定為使與組態檔的輸出資料夾設定

https://ithelp.ithome.com.tw/upload/images/20221002/201516167ASSdMTPuY.png

Linux Centos 7 安裝 .net 6 Runtime

接著我們準備的是一台 Linux Centos 7 的機器,因為我們只有要在上面執行 .net6 專案,所以我們可以只安裝 .net6 Runtime(執行環境)即可。

在 Centos 7 上我們可以透過 yum 來安裝
也可參考官方網站有很詳細的說明 : https://learn.microsoft.com/zh-tw/dotnet/core/install/linux-centos

執行專案

因為 .net 6 runtime 有包含 kestrel 服務(Web Server),所以我們只要將發佈後的檔案複製到 server,並且透過 dotnet 指令就可以執行專案了喔~

  • Step 1 : 在 server 新增專案目錄 mkdir ~/LinePoc
  • Step 2 : 可以透過 scp 或 ftp 將發佈後的檔案複製到 server 上(我們這邊透過 FileZilla 的 ftp 當作範例)
    https://ithelp.ithome.com.tw/upload/images/20221002/2015161690rOIC6fEB.png
  • Step 3 : 最後我們只要在 執行專案目錄下的 專案名稱.dll 就可以囉~
    dotnet ~/LinePoc/LinePoc.dll
    https://ithelp.ithome.com.tw/upload/images/20221002/201516166dUYtN4rd7.png

.net 6 的環境部署大致上就介紹到這邊,但是直接執行 dotnet 指令的話當我們關閉 terminal 後執行中的專案也會跟著關閉,所以要如何在背景執行服務呢?接著我們下一篇會進一步介紹 .net Kestrel web service 如何搭配 Linux system service 來啟動專案喔~


上一篇
[Day 25] .NET 6 C# 與 Line Services API 開發 - Line Pay 串接 (二)
下一篇
[Day 27] .NET 6 C# 與 Line Services API 開發 - 在 Centos 設定 Kestrel 服務 (systemd)
系列文
讓 C# 也可以很 Social - 在 .NET 6 用 C# 串接 LINE Services API 的取經之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言