发布项目到 Linux 上运行 Core 项目
发布项目到 Linux 上运行 Core 项目
目录索引
简介
ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下,我们windows上的项目如何发布项目到Linux上运行。我这里有个在windows上搭建过的程序,我们主要演示如何在linux上运行,所以大家不要纠结于这些,大家可以新建一个web项目尝试一下。
安装.NET Core SDK for CentOS
微软有详细的安装命令,可以参考Install .NET Core SDK
① 安装 libicu 依赖: sudo yum install libunwind libicu
安装成功:
② 下载 SDK 压缩包:curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131
③ 解压缩:sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
④ 创建连接:sudo ln -s /opt/dotnet/dotnet /usr/local/bin
测试安装是否成功
通过 dotnet --info 来查看一下,出现如下界面,表示成功:
测试项目运行
注意:不熟悉Linux的朋友请注意,Liunx下路径是区分目录大小写的。
① 新建一个目录:mkdir TestApp
② 进入目录:cd TestApp
③ 新建一个默认的 web 项目:dotnet new -t web
④ 还原包:dotnet restore
这个时间可能比较长,看网速了,大家要耐心等待。
⑤ 我们来运行一下:dotnet run
发布我们的项目到Linux
大家可以使用Ftp等方式将文件发布到服务器上,我这里直接发布到本地文件夹中,然后通过FileZilla 发送到服务器上。
发布项目的方式有多种,比如可以使用 dotnet publish 命令,我们这里使用 VS :
首先,我们打开 Project.json 来添加几个发布的运行时(这一步可以不要,如果不配置这里,那么发布的时候是 Any,我们待会讲到)
然后,右击我们的项目,选择发布:
新建一个发布配置文件,发布方法选择 文件系统 :
设置里,我们选择目标运行时:centos.7-x64 (在上面,我们讲到 Project.json 里添加了 几个运行时,如果没有那一步,那么这里 没有选项,只有一个 Any)
然后点击发布,我们把发布完的文件上传到CentOS上:我放到了 Wwwroot 目录下
我们来编译我们的文件:dotnet XXX.dll
这里先为大家演示一个 错误 :我的 wkmvc.dll 是在 Wwwroot 目录下的 ,所以 我执行命令(注意路径大小写,Linux区分大小写,我们上面提到) dotnet Wwwroot/wkmvc.dll
显示成功了,我们打开浏览器,输入 localhost:5000
是空白的,我们修改一下我们的程序,输出一下日志看看:
这是什么原因呢?为什么没找到Index.cshtml呢?请大家再次注意一下 我们的 Content root path,答案是 她没有对 root 的操作权限的,我们来对比一下 我们安装过程中 测试成功的 web 和 我们这个 web 的 Content root path
我们来尝试一下:我们进入Wwwroot目录下,然后执行 dotnet wkmvc.dll
我们再次打开浏览器,输入 localhost:5000
是不是 OK 了,我们来进入我们的区域的 登录页 测试一下:
也没有问题,到此,项目就运行成功了,但是在实际中,我们可能还要安装 nginx 、配置我们的 FireWall 以及配置守护服务 Supervisor 等等,这里就不演示了。
希望跟大家一起学习Asp.net Core
刚开始接触,水平有限,很多东西都是自己的理解和翻阅网上大神的资料,如果有不对的地方和不理解的地方,希望大家指正!
虽然Asp.net Core 现在很火热,但是网上的很多资料都是前篇一律的复制,所以有很多问题我也暂时没有解决,希望大家能共同帮助一下!
原创文章 转载请尊重劳动成果 http://yuangang.cnblogs.com
最新文章
- Android之RecyclerView的原生Bug-Inconsistency detected. Invalid view holder adapter positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
- Amd64 and Va_arg
- 作业七:团队项目——Alpha版本冲刺阶段-10
- ASP页面-自动取回数据库中的值生成导航。
- #undef
- 如何用js检查浏览器是否安装flash插件
- if语句写在while语句外面效率更高
- Code Forces Gym 100971D Laying Cables(单调栈)
- PAT_2-08. 用扑克牌计算24点
- build Intent
- 转:jmeter之线程组
- 文件首行为空白行,为什么该行字符串长度为1(line.length()=1)
- Android 6.0 运行时权限处理问题
- unity runtime时导入fbx文件
- 转发--UIPATH http://baijiahao.baidu.com/s?id=1596656405106773890&;wfr=spider&;for=pc&;qq-pf-to=pcqq.c2c
- Determine destination location of apt-get install <;package>;?
- web api 本地测试
- 3. easyui 修改功能实例
- 主机 &; 虚拟机 &; 开发板 相互通信
- Java IO流-标准输入输出流
热门文章
- 【转】Java 中字符串的格式化
- 【二分】Codeforces 706B Interesting drink
- Linux网卡驱动架构分析
- USB Loader使用心得之游戏名称、简介、背景音乐
- 查看Linux发行版的名称和版本号
- UIAlertController 的使用——NS_CLASS_AVAILABLE_IOS(8_0)
- Exception in thread ";main"; com.sun.xml.internal.ws.streaming.XMLStreamReaderException: unexpected XML tag.
- Dockerfile制作sshd镜像
- 使用FTPClient进行文件服务器内文件的上传和下载
- 数据迁移sql