介紹
樹莓派
樹莓派是一種微型電腦赋荆,不到300元的成本就可以擁有一個4核1G的低功耗Linux環(huán)境笋妥,并且自帶了40針I(yè)O窄潭,HDMI,WIFI月帝,USB嚷辅,100M網(wǎng)卡距误,SPI顯示屏接口。
Mono
Mono是一個由Xamarin公司所主持的自由開放源代碼項目攘乒。 該項目的目標(biāo)是創(chuàng)建一系列匹配ECMA標(biāo)準(zhǔn)(Ecma-334和Ecma-335)的.NET工具则酝,包括C#編譯器和通用語言架構(gòu)沽讹。
與微軟的.NET Framework(共通語言運行平臺)不同,Mono項目不僅可以運行于Windows系統(tǒng)上蝠检,還可以運行于Linux叹谁,F(xiàn)reeBSD乘盖,Unix订框,OS X和Solaris等系統(tǒng)上。
所以衩侥,我們要想在樹莓派上運行WebForm應(yīng)用矛物,主要就得靠它了履羞。
Jexus
Jexus是一款Linux平臺上的高性能WEB服務(wù)器和負(fù)載均衡網(wǎng)關(guān),以支持ASP.NET、ASP.NET CORE雄卷、PHP為特色蛤售,同時具備反向代理、入侵檢測等重要功能揣钦∧穑可以這樣說炒嘲,Jexus是.NET匈庭、.NET CORE跨平臺的最優(yōu)秀的宿主服務(wù)器阱持,如果我們認(rèn)為它是Linux平臺的IIS魔熏,這并不為過,因為镶骗,Jexus不但非匙仪希快,而且擁有IIS和其它Web服務(wù)器所不具備的高度的安全性此蜈,這是政府機構(gòu)和重要企業(yè)對web服務(wù)器最必要也是最重要的品質(zhì)需求裆赵。
Jexus既是免費軟件跺嗽,也是自由軟件,你可以自由發(fā)布植兰、自由集成楣导、自由分發(fā)畜挨,你擁用完整的使用權(quán)。
實驗材料
- 樹莓派 3 Model B
- Raspbian
- Jexus 5.8.3 Linux ARM 標(biāo)準(zhǔn)版
- WinScp
- XShell
實驗過程
安裝Mono
確認(rèn)Raspbian版本毡咏,我的是8.0
lsb_release -a
##################################
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
進入MONO官網(wǎng)呕缭,按相關(guān)指引操作進行安裝臊旭。
9.x
sudo apt install apt-transport-https dirmngr
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
8.x
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo apt install apt-transport-https
echo "deb https://download.mono-project.com/repo/debian stable-raspbianjessie main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
執(zhí)行安裝
sudo apt install mono-devel
驗證安裝
1离熏、創(chuàng)建/home/test
目錄,并進入目錄
2钻蔑、創(chuàng)建/home/test/Program.cs
文件奸鸯,寫入以下代碼
using System;
public class HelloWorld
{
static public void Main ()
{
Console.WriteLine ("Hello Mono World");
}
}
3娄涩、編譯csc Program.cs
或mcs Program.cs
4蓄拣、執(zhí)行mono Program.exe
安裝Jexus
下載ARM版球恤,解壓并安裝(注意:云服務(wù)器或PC裝請下載對應(yīng)的其它版本,不要安裝ARM版)
cd /home
wget https://www.linuxdot.net/down/jexus-5.8.3-arm.tar.gz
tar xzvf jexus-5.8.3-arm.tar.gz
cd jexus-5.8.3-arm
./install
安裝完成
root@mc-server:/home/jexus-5.8.3-arm# ./install
Installed /usr/jexus/jxAspx.dll into the gac (/usr/lib/mono/gac)
Installed /usr/jexus/jxHost.dll into the gac (/usr/lib/mono/gac)
OK, Jexus web server has been installed to '/usr/jexus'.
默認(rèn)的配置在/usr/jexus/siteconf
下堪置,是一個指向/var/www/default/
目錄的網(wǎng)站舀锨。我們在此目錄下編寫一個測試頁面default.aspx
宛逗,輸出當(dāng)時的日期與時間。
<%@ Page Language="C#" %>
<%=DateTime.Now%>
在樹莓派上運行/usr/jexus/jws start
root@mc-server:/home# /usr/jexus/jws start
Starting ... OK
查看一下本機的 IP地址
root@mc-server:/usr/jexus# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.89 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::dba:92f0:f625:2fc9 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:a3:15:86 txqueuelen 1000 (Ethernet)
RX packets 2082 bytes 513167 (501.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 773 bytes 94248 (92.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在瀏覽器輸入http://192.168.10.89
碑诉,觀察效果
延伸閱讀:在樹莓派上使Jexus以服務(wù)運行、開機自啟
附錄
mono安裝的其它選擇
mono-devel should be installed to compile code.
編譯開發(fā)環(huán)境安裝德挣,可以在linux下編寫、編譯.net 應(yīng)用程序
mono-complete should be installed to install everything - this should cover most cases of "assembly not found" errors.
完整安裝番挺,可以解決某些情況下出現(xiàn)“未找到程序集”的錯誤 玄柏。
mono-dbg should be installed to get debugging symbols for framework libraries - allowing you to get line numbers in stack traces.
調(diào)試符號,安裝后瀑晒,在錯誤信息的StackTrace中可以顯示行號苔悦。
referenceassemblies-pcl should be installed for PCL compilation support - this will resolve most cases of "Framework not installed: .NETPortable" errors during software compilation.
可以解決某些情況下出現(xiàn)“Framework not installed: .NETPortable”的錯誤 椎咧。
ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
mono-xsp4 should be installed for running ASP.NET applications.
支持Asp.net的安裝