.net core运行在Linux中的例子、文章已经很多了,看了一些之后也想体验一下,顺便记录一下……

  环境:win10 1709、它内置的Linux子系统(这里安装的是Ubuntu 16.04)

  一、安装Ubuntu 16.04

  1、启用win10中内置的Linux

  到了win10 1709,内置的Linux已经不是Beta版了,"控制面板\程序\程序和功能",点击“启用或关闭Windows功能”,启用“适用于Linux的Windows子系统”

  2、安装Linux

  在cmd中输入bash,它会提示你到微软应用商店下载,网址:https://aka.ms/wslstore,在浏览器中输入该网址会自动打开微软应用商店

  

  我选择的是Ubuntu,版本是16.04 LTS,文件很小只有不到200MB

  如上图,这样你就安装成功了,这里固定到了开始屏幕方便下次使用……第一次打开,首先会让你输入用户名和密码:

  之后你可以输入:lsb_release -a 查看Linux的版本:

  没想到就像装软件一样简单,软件有他的安装目录,也想知道Linux的文件系统放在什么地方......找了半天终于找到了:C:\Users\XXX\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

  二、安装.net core2

  这个比较简单,参照官方的基本上没问题,参考网址:https://github.com/dotnet/core/blob/master/release-notes/download-archive.md

  安装.NET Core SDK 2.0.2 with .NET Core 2.0.0

  安装成功之后,查看dotnet 信息 : dotnet --info

  查看dotnet自带的模板:dotnet new --list

  三、跑一个MVC模板

  1、新建一个工作目录

  2、新建一个MVC应用程序: dotnet new mvc -n test1   新建成功并跑一下程序,切换到程序根目录之后执行命令: dotnet run

  3、在浏览器键入 http://localhost:5000/ (大神说:Linux和win10共享网络)

  4、停止应用程序

  5、之后我们发布一下 dotnet publish -c release

  6、切换到“publish”目录,执行命:dotnet test1.dll

  四、安装nginx

  1、sudo apt-get install nginx

  2、查看一下 nginx是否安装成功,并顺便看一下帮助:nginx -h

  3、启动nginx :sudo service nginx start

  第一次失败了,不知道什么原因,由于是linux小白,查了半天,才知道nginx有 -t 这种命令,试了一下

  检测发现80 端口被占用,安装Ubuntu之后什么都没干怎么就80被占用呢?在印证了和win10共享网络。修改了一下nginx的配置文件 etc\nginx\sites-available\default

  再次检查就没有问题了

  4、配置代理,再次修改配置文件

  5、访问10020

  哦,MVC应用程序关了!!!再次启动

  又报了一大推错误,原来应用程序的根目录没有配置(上面有张图中已经圈出),在修改nginx配置文件

  再次访问终于搞定了,这次的错误就不管了……

  五、安装supervisor

  1、安装 sudo apt-get install supervisor

  2、查看supervisor是否安装成功

  3、配置

  在 etc/supervisor/conf.d 目录下 新建test.conf 输入以下内容,根据你的应用程序而定

  启动supervisor 服务:sudo service supervisor start ,在执行以下这个命令:sudo supervisord -c /etc/supervisor/supervisord.conf  如果遇到这个错误

Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h

    可以先执行这个命令:sudo unlink /var/run/supervisor.sock  然后在检查就没问题了

  在检测以下你的配置程序是否成功:ps -ef|grep test1

  如果出现dotnet test1.dll 则说明成功了。

  现在我们试试访问http://localhost:5000 ,可以正常访问,这里就不截图了,图片太多了…… 至此在没有手动在publish目录下执行dotnet test1.dll的情况下就可以访问http://localhost:5000/ 了

  现在我们在启动nginx ,利用IP地址访问:http://192.168.1.8:10020/

  至此,安装Ubuntu、.net core2、mvc demo、安装并配置nginx代理、安装并配置supevisor守护进程全部,操练完毕。哈哈

  2017-11-10 更新

  1、https://github.com/Microsoft/WSL

  2、win10 安装Linux子系统官方文档:https://msdn.microsoft.com/zh-cn/commandline/wsl/install-win10

  3、使用 Nginx 在 Linux 上为 ASP.NET Core 设置托管环境,并对其进行部署

  4、本来也想为supevisor守护进程设置开机启动,但是没有弄出来,所以本文也没有提供。今天发现了这个:Failed to get properties: Launch helper exited 。不知道是不是win10中的Linux 还不支持systemctl? Linux方面不是很了解。如果有了解的,请不吝赐教,非常感谢!!!

在ubuntu16.04中初次体验.net core 2.0的更多相关文章

  1. 在ubuntu16.04中再次体验.net core 2.0

    在上一篇文章中在ubuntu16.04中初次体验.net core 2.0 简单介绍了一下ubuntu中运行.net core 2.0.配置nginx反向代理以及安装supervisor守护进程……本 ...

  2. 在docker中初次体验.net core 2.0

    .net core的跨平台有了Linux,不能没有docker……网上的系列文章一大推,特别是docker还有了中文官网:https://www.docker-cn.com/ .上面说的很清楚了,这里 ...

  3. SLAM+语音机器人DIY系列:(二)ROS入门——3.在ubuntu16.04中安装ROS kinetic

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  4. Ubuntu16.04 中 Vscode 如何断点调试C语言程序

    个人博客链接:Ubuntu16.04 中 Vscode 如何断点调试C语言程序 问题:环境是 Ubuntu16.04,如何使用 Vscode 断点调试C语言程序. 写代码没有调试环境是不能忍受的,所以 ...

  5. ubuntu16.04中可以用于教学的有趣的应用

    ubuntu16.04中可以用于教学的有趣的应用 在ubuntu自带的软件中心里,内置了非常丰富的教育应用,可以用于物理,化学等科学课教学,只选取我用过用于教学的软件,优秀的软件不止这些,可以慢慢发掘 ...

  6. ubuntu16.04中docker安装curl拒绝连接问题

    在Ubuntu16.04中安装docker ce,安装步骤按照官网说明https://docs.docker.com/engine/installation/linux/docker-ce/ubunt ...

  7. Ubuntu16.04中Mysql 5.7 安装配置

    记录在Ubuntu 16.04安装Mysql 5.7时遇到的一些问题. Mysql安装 使用如下命令进行安装: 1 sudo apt-get install mysql-server mysql-cl ...

  8. ubuntu16.04+cuda9.0_cudnn7.5+tensorflow-gpu==1.12.0

    1.查找可用的tensorflow源,该命令运行后终端会输出所有可用的源 anaconda search -t conda tensorflow 2.这里name是上一步中输出源的tensorflow ...

  9. 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. 用appuploader生成发布证书和描述性文件

    本帖最后由 长发飘 于 2017-4-13 12:34 编辑 之前用AppCan平台开发了一个应用,平台可以同时生成安卓版和苹果版,想着也把这应用上架到App Store试试,于是找同学借了个苹果开发 ...

  2. VS启动调试速度异常的缓慢问题

    方法1: 1. 进入vs2017 2.工具 --选项 -- IntelliTrace 关闭此功能 方法2: 1.由于缓存数据太多,需要重置下vs的开发环境 2.打开visual studio 的命名窗 ...

  3. Raiden Charge

    2017年10月22 周日 这是个元气满满 值得纪念的一天(不好意思走错片场了) 虽然有各种乱遭的客观元素 但我们队确确实实地打铁了 那些我们轻视的 野鸡(误)大学 都在我们前面 都说知耻而后勇 虽然 ...

  4. 使用RSA加密在Python中逆向shell

    i春秋翻译小组-Neo(李皓伟) 使用RSA加密在Python中逆向shell 这是一个关于使用RSA加密编程逆向shell的python教程. 我想提一下,这篇文章更多的是关于理解shell中涉及的 ...

  5. 阿里面试100%问到,JVM性能调优篇

    JVM 调优概述 性能定义 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标. 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集 ...

  6. 吴恩达机器学习笔记52-异常检测的问题动机与高斯分布(Problem Motivation of Anomaly Detection& Gaussian Distribution)

    一.问题动机 异常检测(Anomaly detection)问题是机器学习算法的一个常见应用.这种算法的一个有趣之处在于:它虽然主要用于非监督学习问题,但从某些角度看,它又类似于一些监督学习问题. 给 ...

  7. toastr操作完成提示框

    toastr.js组件 关于信息提示框,项目中使用的是toastr.js这个组件,这个组件最大的好处就是异步.无阻塞,提示后可设置消失时间,并且可以将消息提示放到界面的各个地方. 官方文档以及源码 源 ...

  8. [Swift]LeetCode6. Z字形变换 | ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  9. vue总结

    1.库和框架的区别 库:jquery 本质上就是一些列函数的集合,将一些函数封装到一个独立的就是文件中 在使用的jquery的时候,是由开发人员说了算的,也就是说开发人员起到了主导作用,而jquery ...

  10. 使用jquery实现返回顶部按钮

    实现返回顶部效果,首先需要监听页面的scroll事件,其次才是获取到页面当前的滚动高度 $(window).scrollTop(); 具体代码如下: jquery获取页面元素的一些边界值(宽,高,滚动 ...