在Linux上运行ASP.NET vNext
最新的ASP.NET vNext完全开源且可以跨多个平台运行,在Windows环境下我尝试了下,几乎没花什么工夫就跑起了Sample,而在Linux环境下则要多花了不少时间,所以特别记录下整个过程,希望对其他想要尝鲜的人有所帮助。
运行环境
Ubuntu Server 14.04
VirtualBox
Mono >= 3.4.1
*由于Ubuntu库中的Mono版本比较陈旧,满足不了最低要求,所以第一步要做的就是安装最新版本的Mono。
安装Mono
1. 首先从GitHub上取得mono代码:git clone git://github.com/mono/mono.git
*未安装过git程序的话,你首先需要在Ubuntu中执行sudo apt-get install git
命令。
2. 这一步有点奇怪,编译新版本的mono需要旧版本的支持,如果未安装过mono的话,请先在Ubuntu执行sudo apt-get install mono-complete
命令。
3. 进入mono目录,编译程序:
cd mono
./autogen.sh --prefix=/usr/local
make
*这里可能需要预先安装其它的程序,比如autoconf,libtool,g++,make等等。
4. 安装:make install
5. 执行mozroots --import --sync
命令以避免认证问题。
6. 通过mono –version
命令确认所安装的mono是最新的版本。
安装KRE
只需要简单的一句命令:
curl https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh && kvm upgrade
kvm upgrade
命令会自动下载最新的KRE包, 将其解压到.kre/packages目录下并添加bin文件夹路径至你的环境变量PATH中。
*因为涉及解压的操作,所以unzip程序必须预先安装:sudo apt-get install unzip
安装完成后可以通过kpm –version
命令检查是否安装正确。
Hello World
完成所有准备工作之后,即可以尝试运行第一个程序了。按照传统,第一个程序应该是“Hello World!”
1. 首先建立HelloWorld文件夹:mkdir HelloWorld
2. 进入文件夹后:cd HelloWorld
,再建立两个文件Program.cs和project.json。
3. 编辑这两个文件(推荐使用vim),在Program.cs加入以下代码:
using System;public class Program
{public static void Main(){Console.WriteLine("Hello World!");}
}
而在project.json文件中加入下列配置:
{"dependencies": {"System.Console": "4.0.0.0"},"configurations": {"net45": {},"k10": {}}
}
4. 执行kpm restore -s https://www.myget.org/F/aspnetvnext/
命令。
*该命令会根据配置文件中的描述,从指定nuget仓库中取得必要的依赖项。
5. 运行程序:k run
以上步骤都正确的话,应该就能在shell中看到“Hello World!”的显示。
简单的MVC
接着试一个较复杂的程序,代码可以直接从GitHub中取得。
git clone git://github.com/aspnet/Home.git
取得HelloMvc代码并不能直接使用,因为其指定的Web服务器在Linux中并不存在,我们还需要添加一个工程用于生成Web服务器。
从https://github.com/Alxandr/Nowin.vNext/tree/master/src中取得Nowin.vNext文件夹,将其置于与HelloMvc同级的目录下。
然后修改HelloMvc的project.json文件:
{"version": "0.1-alpha-*","dependencies": {"Microsoft.AspNet.Mvc": "0.1-alpha-*","Nowin.vNext": ""},"commands": {"web": "Microsoft.AspNet.Hosting --server Nowin.vNext"},"configurations": {"net45": {"dependencies": {"System.Runtime": "","System.ComponentModel.DataAnnotations": ""}},"k10": {}}
}
这样运行kpm restore
命令下载依赖项后,执行k web
命令,就可以在浏览器中查看网页了。
*其实以上执行时还是会有错误,需要把Startup.cs文件中的app.UseErrorPage();
与app.UseWelcomePage();
语句注释掉才行。猜测是Nowin.vNext服务器中未实现所产生的问题。
客户端访问
因为在这个试验中所用的Ubuntu Server未安装桌面环境,所以也就不能在虚拟机中查看以上的结果。不过既然虚拟机已然成了服务端,不妨就把宿主机当成客户端吧。
在VirtualBox的网络设置中将连接方式改成桥接网卡,这样宿主机就可以通过IP地址访问虚拟机。
上一例子的Web服务器端口号为8080,所以在宿主机的浏览器上输入“虚拟机ip地址:8080”并轻击回车后也就能看到最终的成果了。
转载于:https://www.cnblogs.com/sjyforg/p/3807038.html
在Linux上运行ASP.NET vNext相关推荐
- sql server能在linux上运行,在 Ubuntu 上可以安装 SQL Server 了~
原标题:在 Ubuntu 上可以安装 SQL Server 了~ 导读 SQL Server现在可以在Linux上运行了!正如微软CEO Satya Nadella说的,"Microsoft ...
- linux上运行项目,发布项目到 Linux 上运行 Core 项目
目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下,我们windows上的项目如何发布项目到Linux上运行 ...
- 中国菜刀能在linux上运行吗,【Web Shell】- 技术剖析中国菜刀
在第一部分,简单描述了中国菜刀的基本功能.本文我将剖析中国菜刀的平台多功能性.传输机制.交互模式和检测.我希望通过我的讲解,您能够根据您的环境检测出并清除它. 平台 那么中国菜刀可以在哪些平台上运行? ...
- 推荐两款支持在linux下运行ASP.NET网站的国产免费WEB服务器软件
推荐两款支持在linux下运行ASP.NET网站的国产免费WEB服务器软件 1.kangle kangle web server是一款跨平台(windows/linux/bsd).功能强大.安全稳定. ...
- Centos7笔记之Docker-ce上运行ASP.NET CORE程序
一.目标 centos7.6下Docker-ce上运行ASP.NET CORE程序 二.平台 [root@hiibm ~]# uname -r 3.10.0-957.el7.x86_64 [root@ ...
- c#如何在linux上运行程序,在Linux上运行C#
众所周知,C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Win 9x.ME.NT.2000.XP和Win CE之类的操作系统.但是,现在却有了一个叫做Mono的项目,它的目 ...
- linux里运行windows,在Linux上运行Windows应用程序
当前位置:我的异常网» Linux/Unix » 在Linux上运行Windows应用程序 在Linux上运行Windows应用程序 www.myexceptions.net 网友分享于:2015- ...
- linux下运行python unitest_Python unittest打印日志可以在Linux上运行,但在Windows上不行...
我正在尝试编写一个unittest,它将stdout和stderr重定向到一个写在Windows网络驱动器上的文件.出于某些原因,相同的脚本(只有diff.是目录路径)可以在Linux上工作,但在Wi ...
- python php linux-怎么在linux上运行python
Linux默认是已经安装好了Python程序 目前来说,大多数的Linux发行版是安装了两个版本的Python程序 一个是Python 2.x 一个是Python 3.x 一些系统自带的程序文件需要P ...
- Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台
Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台 原文:Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台 转发请注明此文 ...
最新文章
- CTO 基本功大盘点 —— 没有这些技能,谈何远大前程?
- 【Flutter】Flutter 布局组件 ( 布局组件简介 | Row 组件 | Column 组件 | SizedBox 组件 | ClipOval 组件 )
- MySQL免安装版配置教程
- 华北理工大学815c语言程序设计,2017年华北理工大学信息工程学院815C程序设计考研冲刺密押题...
- oracle 函数索引
- cocos2d-x游戏实例(19)-纵版射击游戏(6)
- 安装 Ffmpeg 步骤
- Spring Boot 与 Java 对应版本,以下表格由官方网站总结。
- c语言中把各位上为奇数的数取出,下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在冲。 - 赏学吧...
- springMVC:前端请求后台并传值
- QTP不识别树结构中的点击事件
- k3cloud新建简单帐表教程
- 【万物互联支持一碰传、多屏协同】第三方非华为电脑安装华为电脑管家
- 一个工业相机通用类解决大部分业内流行相机的访问(基于大华相机的动态链接库开发的通用相机类)C#版
- C++华氏温度和摄氏温度的转换
- pdf关键字高亮 java_Java查找并高亮PDF文本过程解析
- 电脑 蓝屏 问题签名: 问题事件名称: BlueScreen OS 版本: 6.1.7600.2.0.0.256.1 区域设置 ID: 2052...
- 百度地图调用手机陀螺仪完成指向功能
- Flyback的Cross Regulation
- 台式计算机键盘进水了还能用,电脑键盘进水了怎么办?正确的处理方法才能让它恢复如初...
热门文章
- visual studio 2019配置dlib读取jpeg图片
- qpython3 获取手机gps接口
- 【论文笔记】Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
- Git的使用--如何将本地项目上传到Github(两种简单、方便的方法)
- 记一次Win10环境python3.7安装dlib模块趟过的坑
- 汇编语言和C语言的比较
- 2021-08-02 表的增删改查
- 论坛apache伪静态_修正PostViews插件加入CDN静态缓存后计数不正常问题
- FISCO BCOS Transaction execution error合约执行失败原因
- IDEA java 显示build目录