09. 樹莓派ASP.NET環境配置

劉哄紅發表於2022-04-21

在樹莓派上部署ASP.NET環境(樹莓派做ASP.NET專案伺服器),之後Windows上開發的ASP.NET專案可以部署在樹莓派上。配置過程如下:

前言:本篇文章內容是根據mono官網上查閱的配置教程所寫,當時做期末課設的時候一邊查翻譯一邊配置(好像當時訪問這個網站還要禾鬥學上網),最終親身試驗可以用,隨後在word上做了配置過程筆記,現在搬上來。

  mono教程官網網址:https://www.mono-project.com/download/preview/#download-lin-raspbian

  1. 安裝Mono。Mono是Xamarin公司開發的一個跨平臺.NET執行環境。安裝Mono是必不可少的一個關鍵步驟。

  2. 在安裝前,先檢視下樹莓派系統的版本

lsb_release  -a

  3. 記住紅框中的這個版本號

  

  4. 將Mono儲存庫新增到系統(看你係統版本,選一個安裝)注意:這些軟體包應該在較新的Raspbian版本上工作,僅測試以下列出的版本。

  Raspbian 10:

sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-raspbianbuster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

  Raspbian 9:

sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

  5. 安裝單聲道(mono)

    1)安裝軟體包mono-devel來編譯程式碼。

sudo apt install mono-devel

    2)安裝mono-complete軟體包才能安裝所有內容-這應涵蓋大多數“找不到元件”錯誤的情況。

sudo apt install mono-complete

    3)安裝軟體包mono-dbg以獲得框架庫的除錯符號-允許您獲取堆疊跟蹤中的行號。

sudo apt install mono-dbg

    4)安裝軟體包referenceassemblies-pcl以獲得PCL編譯支援-這將解決軟體編譯過程中大多數“未安裝框架:.NETPortable”錯誤的情況。

sudo apt install referenceassemblies-pcl

    5)安裝軟體包ca-certificates-mono以獲得HTTPS連線的SSL證書。如果在建立HTTPS連線時遇到麻煩,請安裝此軟體包。

sudo apt install ca-certificates-mono

    6)安裝軟體包mono-xsp4來執行ASP.NET應用程式。

sudo apt install mono-xsp4

  筆記:預設情況下,3.12之前的Linux上的Mono不信任任何SSL證書,因此在訪問HTTPS資源時會出錯。不再需要此功能,因為3.12及更高版本包含一個新工具,該工具可在軟體包安裝時執行,並將Mono的證書儲存與系統證書儲存同步(在較舊的版本上,您必須通過執行匯入Mozilla的受信任證書列表mozroots --import --sync)。某些系統的配置方式使得在安裝Mono時不會引入必要的軟體包,在這種情況下,請確保ca-certificates-mono已安裝軟體包。

  6. 驗證安裝。安裝Mono之後,最好需要執行一個快速的Hello World程式以確保正確設定了所有程式。這樣,在嘗試編寫或執行更復雜的應用程式時,您知道Mono是正常的。

    1)控制檯Hello World

    要測試基本功能是否可用,請將以下程式碼複製到名為hello.cs的檔案中。沒有這個檔案就在你喜歡的位置新建個。

using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        Console.WriteLine ("Hello Mono World");
    }
} 

    使用csc命令編譯:

csc hello.cs   

    注意:csc編譯器並非在所有平臺上或在非常舊的Mono版本中都可用,在這種情況下,請改用mcs。  

    編譯之後,編譯器將建立“ hello.exe”,您可以使用以下命令執行它:

mono hello.exe

    該程式應執行並輸出:Hello Mono World

 

    2)HTTPS連線。

    為了確保HTTPS連線正常執行,請執行以下命令以檢查是否可以連線到baidu.com

csharp -e 'new System.Net.WebClient ().DownloadString ("https://www.baidu.com")'

    如果一切正常,該程式將列印網站的html程式碼,否則將丟擲異常。

    

    3)WinForm's Hello World

    以下程式測試編寫System.Windows.Forms應用程式 

using System;
using System.Windows.Forms;

public class HelloWorld : Form
{
    static public void Main ()
    {
        Application.Run (new HelloWorld ());
    }

    public HelloWorld ()
    {
        Text = "Hello Mono World";
    }
}

    要進行編譯,請使用帶有-r選項的csc來告訴編譯器提取WinForms庫:

csc hello.cs -r:System.Windows.Forms.dll

    編譯器將建立“ hello.exe”,您可以使用以下命令執行它:

mono hello.exe

    

    4)ASP.NET Hello World   

    建立一個名稱為WebForm1.aspx的文字檔案並新增內容:

<%@ Page Language="C#" AutoEventWireup="true"%>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Sample Calendar</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:calendar showtitle="true" runat="server"></asp:calendar>
        </div>
    </form>
</body>
</html>

    然後從該檔案目錄執行xsp4命令:(先cd開啟檔案目錄)

xsp4 --port 9000

    

    5)Gtk#Hello World

    以下程式測試編寫Gtk#應用程式。

using Gtk;
using System;

class Hello
{
    static void Main ()
    {
        Application.Init ();

        Window window = new Window ("Hello Mono World");
        window.Show ();

        Application.Run ();
    }
}

    要進行編譯,請使用帶有-pkg選項的mcs來告訴編譯器引入Gtk#庫(請注意,必須在系統上安裝Gtk#才能起作用):

mcs hello.cs -pkg:gtk-sharp-2.0

    編譯器將建立“ hello.exe”,您可以使用以下命令執行它:

mono hello.exe

  

  7. 檢視Mono版本資訊

mono -V

  8. 安裝libgdiplus

  Libgdiplus是一個Mono單聲道庫,用於對非Windows作業系統提供GDI+相容的API。libgdiplus是mono中的System.Drawing依賴的一個元件,用於顯示web頁面基本顏色等。

  後面發現,裝Mono時,libgdiplus就被預設安裝了,要想手動安裝可執行下面的命令試試

sudo apt install libgdiplus

 

相關文章