希格工作室

2019年1月12日 星期六

VS2017 .Net Core 安裝 SignalR Core + 發佈到Linux上


建立專案
  1. 使用VS2017
  2. 新增專案選擇.Net Core => ASP.NET Core Web 應用程式
  3. 選擇API或Web應用程式都可
  4. 建立好之後,在專案按右鍵[加入] => [新增用戶端程式庫] => 下拉選單改成[unpkg] => 輸入 @aspnet/signalr@   接者打1或其他(目前只有1)
  5. 應該會跳出浮空的下拉選單,選最新的(但是不包含任何"預覽"的英文字樣),這樣才是正式運行版本
  6. 選取 [選擇特定檔案]、展開 [散發者/瀏覽器] 資料夾,然後選取 signalr.js 與 signalr.min.js。
  7. 將 [目標位置] 設定為 wwwroot/lib/signalr/,然後選取 [安裝]。
  8. 去寫前後端程式
  9. 前端引入<script src="~/lib/signalr/dist/browser/signalr.js"></script>

發行程式
  1. 對專案按右鍵[發行] => 部屬模式選擇[Framework依存性]或[獨立式]皆可 
  2. [Framework依存性]時[目標執行階段]保持在[可攜式];[獨立式]則指定平台(ex:Linux x64)
  3. 發行完成把資料夾壓成zip檔放著


安裝Linux
  1. 到CentOS官網下載最新版iso(https://www.centos.org/download/)
  2. 然後在虛擬機器上安裝它
  3. 從Console登入(廢話...)
  4. 設定網卡,找出剛才安裝時的網卡名稱 => cd /etc/sysconfig/network-scripts/
  5. 修改網卡, => vi {網卡名稱}
    BOOTPROTO=static
    IPADDR=192.168.xxx.xxx
    GATEWAY=192.168.xxx.1
    NETWORK=192.168.xxx.0
    NETMASK=255.255.255.0
    DNS1=8.8.8.8
  6. 輸入[ESC]結束修改模式,然後輸入;wq 存檔後離開 
  7. 停用網卡 => ifdown {網卡名稱}
  8. 啟用網卡 => ifup {網卡名稱}
  9. 測試遠端連線是否成功


下載mRemoteNG(https://mremoteng.org/download)
  1. 從遠端登入它(再度廢話...)
  2. 透過SSH工具上傳剛才的zip


在Linux上安裝.Net Core Runtime
  1. 取得package資訊 ,輸入
    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
  2. 安裝指定版本(例如core 2.1)
    sudo yum install aspnetcore-runtime-2.1


執行.Net Core
  1. cd到放zip的那資料夾裡面
  2. 解開zip檔 => unzip {檔名}
  3. cd 到解壓的資料夾
  4. 執行dotnet指令
    sudo dotnet xxx.dll --server.urls http://192.168.xxx.xxx
    *. xxx.dll依照你專案的發行名稱輸入
    *. --server.urls可以指定運行時的ip跟port

從其他電腦測試站台失敗時
  1. 開啟防火牆
    firewall-cmd --zone=public --add-port=80/tcp --permanent
  2. 重載入防火牆
    firewall-cmd --reload

結語:對不熟linux的人而言,很麻煩。

參考網站