在树莓派上借助Mono + Jexus 布署 .Net 4.0 WebForm应用
介绍
树莓派
树莓派是一种微型电脑,不到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既是免费软件,也是自由软件,你可以自由发布、自由集成、自由分发,你拥用完整的使用权。
实验材料
- 树莓派 3 Model B
- Raspbian
- Jexus 5.8.3 Linux ARM 标准版
- WinScp
- XShell
实验过程
安装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.cs
或mcs Program.cs
4、执行mono Program.exe
安装Jexus
下载ARM版,解压并安装(注意:云服务器或PC装请下载对应的其它版本,不要安装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'.
默认的配置在/usr/jexus/siteconf
下,是一个指向/var/www/default/
目录的网站。我们在此目录下编写一个测试页面default.aspx
,输出当时的日期与时间。
<%@ 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
,观察效果
附录
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的安装
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
第一个 Dubbo 应用
Java RMI 简介 Java RMI (Remote Method Invocation)- 远程方法调用,能够让客户端像使用本地调用一样调用服务端 Java 虚拟机中的对象方法。RMI 是面向对象语言领域对 RPC (Remote Procedure Call)的完善,用户无需依靠 IDL 的帮助来完成分布式调用,而是通过依赖接口这种更简单自然的方式。 Java RMI 工作原理 一个典型的 RMI 调用如下图所示: 服务端向 RMI 注册服务绑定自己的地址, 客户端通过 RMI 注册服务获取目标地址, 客户端调用本地的 Stub 对象上的方法,和调用本地对象上的方法一致, 本地存根对象将调用信息打包,通过网络发送到服务端, 服务端的 Skeleton 对象收到网络请求之后,将调用信息解包, 然后找到真正的服务对象发起调用,并将返回结果打包通
- 下一篇
建立个人数据分析平台
创建虚拟环境 conda create -n superset python=3.6 pip install superset 激活 activate superset pip install superset -ihttps://pypi.douban.com/simple cd D:\Anaconda3\Lib\site-packages\superset cd bin python superset fabmanager create-admin --app superset python superset db upgrade python superset load_examples python superset init python superset runserver -d 知识在于点滴积累
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用