在树莓派上借助Mono + Jexus 布署 .Net 4.0 WebForm应用

简介: 介绍树莓派树莓派是一种微型电脑,不到300元的成本就可以拥有一个4核1G的低功耗Linux环境,并且自带了40针IO,HDMI,WIFI,USB,100M网卡,SPI显示屏接口。

介绍

树莓派

树莓派是一种微型电脑,不到300元的成本就可以拥有一个4核1G的低功耗Linux环境,并且自带了40针IO,HDMI,WIFI,USB,100M网卡,SPI显示屏接口。

树莓派

Mono

Mono是一个由Xamarin公司所主持的自由开放源代码项目。 该项目的目标是创建一系列匹配ECMA标准(Ecma-334和Ecma-335)的.NET工具,包括C#编译器和通用语言架构。

与微软的.NET Framework(共通语言运行平台)不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,OS X和Solaris等系统上。

所以,我们要想在树莓派上运行WebForm应用,主要就得靠它了。

Jexus

Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,以支持ASP.NET、ASP.NET CORE、PHP为特色,同时具备反向代理、入侵检测等重要功能。可以这样说,Jexus是.NET、.NET CORE跨平台的最优秀的宿主服务器,如果我们认为它是Linux平台的IIS,这并不为过,因为,Jexus不但非常快,而且拥有IIS和其它Web服务器所不具备的高度的安全性,这是政府机构和重要企业对web服务器最必要也是最重要的品质需求。

Jexus既是免费软件,也是自由软件,你可以自由发布、自由集成、自由分发,你拥用完整的使用权。

实验材料

实验过程

安装Mono

确认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官网,按相关指引操作进行安装。

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

执行安装

sudo apt install mono-devel

验证安装
1、创建/home/test目录,并进入目录
2、创建/home/test/Program.cs文件,写入以下代码

using System;
 
public class HelloWorld
{
    static public void Main ()
    {
        Console.WriteLine ("Hello Mono World");
    }
}

3、编译csc Program.csmcs Program.cs
4、执行mono Program.exe

测试

安装Jexus

下载ARM版,解压并安装(注意:云服务器或PC装请下载对应的其它版本,不要安装ARM版

cd /home
wget 
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'.

默认的配置在/usr/jexus/siteconf下,是一个指向/var/www/default/目录的网站。我们在此目录下编写一个测试页面default.aspx,输出当时的日期与时间。



在树莓派上运行/usr/jexus/jws start

root@mc-server:/home# /usr/jexus/jws start
Starting ... OK

查看一下本机的 IP地址

root@mc-server:/usr/jexus# ifconfig
eth0: flags=4163  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
        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,观察效果

image.png

延伸阅读:在树莓派上使Jexus以服务运行、开机自启

附录

mono安装的其它选择

mono-devel should be installed to compile code.

编译开发环境安装,可以在linux下编写、编译.net 应用程序

mono-complete should be installed to install everything - this should cover most cases of "assembly not found" errors.

完整安装,可以解决某些情况下出现“未找到程序集”的错误 。

mono-dbg should be installed to get debugging symbols for framework libraries - allowing you to get line numbers in stack traces.

调试符号,安装后,在错误信息的StackTrace中可以显示行号。

referenceassemblies-pcl should be installed for PCL compilation support - this will resolve most cases of "Framework not installed: .NETPortable" errors during software compilation.

可以解决某些情况下出现“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的安装

相关文章
|
7月前
|
安全 程序员 Shell
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
|
开发框架 IDE 前端开发
Deepin下使用Rider开发发.NET Core
Deepin下使用Rider开发发.NET Core
313 0
Deepin下使用Rider开发发.NET Core
mono,让C#脱离.NET环境
mono,让C#脱离.NET环境
547 0
|
Web App开发 JavaScript
一起谈.NET技术,SilverLight自动安装
1、 准备js,参考了一个js弹出层的例子。最后自动输出exe,类似flash安装。ie可以自动安装,其他浏览器需要手动下载安装包。 var isOK = Silverlight.isInstalled("4.
784 0
|
.NET 开发工具
一起谈.NET技术,Silverlight + RIA Service的SUID的实例
  1、准备工作   新建一个Silverlight Business Application,首先修改web.config,他自动生成的配置比较省略,我手动加入membership,role,profile的配置,我是ASP.NET MVC的项目中拷贝过来,直接用他的配置也可以,不过手动配置一下连接字符串LocalSqlServer,不然不能运行。
1260 0
|
Web App开发 .NET 应用服务中间件
ASP.NET MVC3 on Mono的折腾(一):Windows下的“.NET研究”部署
  Mono 2.10支持MVC3和Razor的消息着实让我兴奋了好一会儿,因为支持MVC3后,我就有可能做Kooboo CMS3兼容Mono的相关测试工作。可是没一会儿,我就发现,离我的目标还是有一点距离。
1449 0
|
Web App开发 .NET
一起谈.NET技术,打包Asp.Net 网站成为一个exe方便快捷的进行客户演示
  在Asp时代有一个NetBox 产品可以把整个Asp网站AllInOne的打包成一个exe,在没有IIS的情况下可以单独运行这个exe来开启整个网站。在Asp.Net 下一直没有类似的产品出现,可能是IIS已经非常的强大了,不需要类似的产品了? 但是在某种场景下还是需要一个类似功能的产品的,这个产品不是用来部分替代IIS来做一个轻量级的IIS,而是用来方便快捷的进行客户展示。
1075 0
|
Web App开发 .NET Linux
一起谈.NET技术,ASP.NET MVC3 on Mono的折腾(一):Windows下的部署
  Mono 2.10支持MVC3和Razor的消息着实让我兴奋了好一会儿,因为支持MVC3后,我就有可能做Kooboo CMS3兼容Mono的相关测试工作。可是没一会儿,我就发现,离我的目标还是有一点距离。
1507 0
|
Web App开发 应用服务中间件 C#
在Windows系统中用nginx与mono搭建asp.net运行环境,附详细例图与代码
一、下载nginx安装包和mono安装包 下载Nginx:到Nginx下载对应的版本 下载Mono对应平台:下载 Mono   二、安装配置 解压nginx到C:盘 打开C:\nginx\conf\nginx.
1878 0
|
Web App开发 .NET
打包Asp.Net 网站成为一个exe方便快捷的“.NET研究”进行客户演示
  在Asp时代有一个NetBox 产品可以把整个Asp网站AllInOne的打包成一个exe,在没有IIS的情况下可以单独运行这个exe来开启整个网站。在Asp.上海闵行企业网站设计与制作Net 下一直没有类似的产品出现,可能是IIS已经非常的强大了,不需要类似的产品了? 但是在某种场景下还是需要一个类似功能的产品的,这个产品不是用来部分替代IIS来做一个轻量级的IIS,而是用来方便快捷的进行客户展示。
819 0