2018-07-10

.Net Core MVC环境安装开发

[TOC]

最近在学习 .net core mvc框架下的开发,因此有些学习体验可以提供给大家,全部都是自己在学习过程中总结的干货。包含Windows、Mac、CentOS等环境下遇到的问题以及解决方法。

本人也是小白,只是在学习过程中发现这一块儿遇到的问题网上资料太少,所以就将自己的学习经历记录下来,希望对后来者学习有所帮助

一、dotnet SDK 和Runtime的下载和安装

对于windows用户和Mac用户这一步就很简单了。直接在官网上下载对应的安装包进行安装就行了。但是一定要记住一点,那就是版本一定要一致,否则你会在后面踏进很多坑,特别是对于多平台开发的同学。

Window或Mac安装

对于Linux平台的用户安装起来也很方便在这个网址下选择好对应的操作平台就可以按照提示进行安装,同样的,不建议通过百度的方法进行安装,因为百度上每个人发表的文章时间都不固定,文章里附带的下载链接可能并不是最新的安装包,这对以后开发的版本统一很不利,因此建议到官网上下载统一的安装包进行下载。

Linux安装

二、创建MVC项目

编辑器推荐VSCode

在要创建项目的地址创建一个文件夹,例如Demo,然后在命令行模式下进入到当前的目录,例如我这里是D:\Demo

以下代码都可以在VSCode中直接输入,操作步骤是 "查看 => 集成终端"

VScode
创建MVC项目

新建项目之后可以看到文件夹下已经生成了对应的文件


MVC项目文件夹

这个时候我们执行 dotnet restore命令,可以安装项目的依赖文件。执行dotnet run命令后就可以在本地localhost:5000的地址上访问到界面。

运行项目

项目运行截图

最终,我们需要发布项目,执行dotnet publish -c release命令就可以将项目发布到当前文件夹的bin/release/项目名称/publish下,需要部署时只要将publish文件夹复制到服务器上进行部署即可。

项目发布

发布文件内容

三、项目部署到服务器

部署之前一定要确定项目编译通过无错误,并且已经安装dotnet-sdk 以及 dotnet-runtime,两者版本要一致!两者版本要一致!两者版本要一致!

在IIS服务器上部署:

在IIS上部署相对要简单很多,毕竟都是自家玩意儿,只需要在IIS上新建一个网站,然后选择基本设置,将物理路径选择自己项目的路径即可。

IIS服务器发布

在CentOS服务器上部署:

在Linux服务器上部署的步骤就多了些。首先,依然是要确定项目编译通过无错误,并且已经安装dotnet-sdk 以及 dotnet-runtime,两者版本要一致!两者版本要一致!两者版本要一致!

然后,我们需要安装Jexus,通常情况下,对外提供的 Web 服务都在 80或者443 端口,而我们的 Web 应用程序默认运行在5000端口,在 Windows 上可以使用 IIS 来宿主 ASP.NET Core,在 Linux 下可以用 Nginx,Apache,Jexus 等来作为宿主。本实验向大家推荐使用国内社区自行开发的 Jexus。

以下内容假设你的项目名称是aspetcoreapp,并且publish文件放置在/var/www/aspnetcore下

执行命令安装独立版的 Jexus:

curl https://jexus.org/release/x64/install.sh|sh

执行命令将 asp.net core 应用部署到 Jexus

mkdir -p /var/www/aspnetcore
dotnet publish -o /var/www/aspnetcore

执行命令启动服务监听端口

dotnet /var/www/aspnetcore/aspnetcoreapp.dll

创建 aspnetcore 配置文件

cd /usr/jexus/siteconf
cp default aspnetcore

修改 aspnetcore 配置文件为如下内容

 port=80
    root=/ /var/www/aspnetcore
    hosts= *    #OR your.com,*.your.com

    AppHost={
        cmd=dotnet /var/www/aspnetcore/aspnetcoreapp.dll;
        root=/var/www/aspnetcore;
        port=0;
    }

执行命令删除原有默认配置文件

rm -rf /usr/jexus/siteconf/default

执行命令启动 Jexus

sh /usr/jexus/jws restart
sh /usr/jexus/jws start

恭喜,您的 ASP.NET Core Web 应用运行成功,使用浏览器直接访问 你的IP地址 即可看到 项目的 效果。

成功运行

四、学习过程中遇到的问题和解决方法

1、网站部署之后输入网址出现502 Bad GateWay的问题
2、使用dotnet rundotnet publish命令时出现如下错误

具体错误代码忘记了,内容大概是dotnet版本不一样,通过升级dotnet版本或者修改配置文件来解决问题

3、网站部署后访问地址出现拒绝访问或者找不到页面的问题

解决

出现以上三个问题请:

  • 检查自己的dotnet版本是否统一(跨平台开发一定要注意这一点,否则无法编译、发布)
  • dotnet-SDK 和 dotnet-runtime 是不是都安装了,特别是dotnet-runtime
  • linux服务器下第一次安装或配置Jexus建议重启一下服务器再启动Jexus服务
  • 在项目文件.csproj文件中添加如下内容
    <PropertyGroup>
        <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
    </PropertyGroup>
    

五、总结

以上就是我在.net core项目开发和部署中遇到的坑,希望能给后来学习的朋友一点帮助,有什么疑问的可以留言。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • 1 为什么需要服务 组件应该聚焦于展示数据,而把数据访问的职责委托给某个服务。服务不要使用 new 来创建此服务,...
    快乐女孩筱梅阅读 305评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 1. 开发环境搭建[python开发环境] 1.1. 确认安装什么环境:那个版本的环境[python2.x orp...
    YiFoErLiu阅读 238评论 0 0
  • 文/朝歌晚丽 01 天气已近寒冬,玫瑰花开始慢慢凋谢。 粉小球看着自己的玫瑰花一步一步走向枯萎,却无可奈何。 刚从...
    朝歌晚丽阅读 3,719评论 117 98
  • “数声鶗鴂,又报芳菲歇。惜春更把残红折。雨轻风色暴,梅子青时节。” 初读张先这首词,是因为这个“鶗鴂”的写法和读音...
    花落惜无言阅读 1,065评论 0 5