.net core web发布到CentOS汇总

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net core web发布到CentOS汇总相关的知识,希望对你有一定的参考价值。

直到今天我的博客终于可以见世人了,中间懒了很长一段时间,什么也没干,也没怎么学习,前段时间也是各种折腾,无心学习。本篇主要汇总下从一开始到现在遇到的问题汇总,作为学习笔记。我的博客就是我的学习笔记,因为发现不管是以后的工作还是学习中,我们还是会遇到以前遇到过的问题,而这时再去园子里翻别人的博客,无疑就是浪费时间,而且如果碰到上下不连贯的内容,还是耽误更长的时间,所以自己写自己能理解能看懂的博客作为自己的学习笔记才是最好的学习方式。关于csdn和博客园,我一般是在csdn里面写然后拷贝到博客园里,如果多了就直接迁移过去,没什么别的原因,就是比较喜欢csdn的编辑器,看的顺眼。切入正题:

一、在刚开始学习.net core的时候,上来就学习了怎么在CentOS上去发布使用.net core做的项目,哈哈C#写的东西居然跑到了Linux上,这在以前可是想都没法想的,就这样一点点的学习,一个个命令的学习,对我这种Linux小白来说真的是太吃力了,可还是一点点的跑起来了,那时只是简单的将.net core的默认的web跑了起来,用到的有nginx 反向代理,将http://localhost:5000 转发到了80端口,用到了supervisor,它将我们的命令行进程变成了可以运行在后台的守护进程,让我们不用再看到那个黑框框,还可以实时监控进程的运行状态,如果死掉了,立马去尝试重启它,这两个是我在运行我的博客必不可少两个工具。

二、再来说说我的博客,我的博客将前端和后台管理分开实现,在后台时,我用到了layui,也是一款经典的模块化的前端框架,还是比较好用的,用了它的列表,文本框,按钮,富文本编辑器,以及分页等等,用起来也很方便,简单展示效果:

技术分享

技术分享

前端我用到了BootStrap作为UI展示,实现响应式布局,还是比较漂亮,当然模板也是直接下载的,另外还用到了Anjularjs进行页面填充以及请求数据,BootStrap作为前端框架来说,的确很漂亮,而Angularjs有下一代Web应用之称也是不为过,我用它,主要是绑定前面的博客内容特别方便,直接也用过一个特别小的js库,叫做doT.js,都有模板的意味,很好用,简单代码展示(当然我只是用到了凤毛麟角):

技术分享

这个get请求的方法真的是变的太个性了,之前学习Angularjs的时候还没有这样的写法,导致一用就出错了,我将数据打印到了控制台,大家可以查看返回的数据格式,下面前台页面绑定:

技术分享

这就是博客绑定的代码,是不是和doT.js特别像,但是比他要灵活的多,我不需要模板,我可以直接很任性的这样去绑定数据,什么都不需要管,特有的ng-命令看着也很舒服,包括时间格式的Format以及博客内容的字数限制,是不是很强大。下面是我用到的Bower库:

技术分享可能有人觉得我用的太乱,太杂,的确,我是什么都想尝试用下,不喜欢可以随意喷,无所谓。

数据库操作我用的是一个轻量级的ORM框架Dapper,它现在也是开源的,可以直接在Nuget里面还原使用,它的效率也很高,关于这个在我之前的博客中有过介绍,在这个版本里面我没有用到什么EF之类的,还是使用传统的方式,实现了数据库操作,之后这个项目会不断升级,使用更多新的东西,前台展示什么的应该不会再更新,主要还是想学习下.net core新的东西。再贴几张图:

技术分享

技术分享

里面的有写内容我并没有实现,只是做了博客内容展示以及详情页和右侧的数量统计,后面再把分页加上,内容比较简单。

三、当我前几天实现数据绑定时,想想终于可以放到外网上了,可是在发布到CentOS 上时又时问题百出,首先遇到的问题是酱紫的

技术分享为这个问题傻逼了很长时间,怎么会一直都是这个错误,也没有详细的错误,才发现默认的错误页的内容是这样的,然后各种模式各种尝试,可是一直都是这个错误,在这里说一下ASPNETCORE_ENVIROMENT的三种环境变量。

技术分享

技术分享

技术分享

技术分享技术分享

以上是关于多环境的介绍,直接拍了书上的内容,可能是时间太久了的原因,忘记了在supervisor配置守护进程的时候配置过环境变量,如图:

技术分享这里的进程环境变量为Production,我就尝试将它改成了Development,居然可以了(疑问一),但是又出现了新的问题,数据库连接超时,配置文件中我配置的是另一台Server的数据库地址,提示超时问题,发现也有人遇到了类似的问题,见这里,博主说是数据库版本的问题,的确我用的却是比较低的版本,还没有尝试高版本是否可以(疑问二),再然后我就大胆的使用了mssql for linux,这就是为什么我用了mssql for linux 的原因了,是因为没有办法了。终于终于我的博客可以让别人看到了。

仅以此篇博客记录做这个Demo时遇到的问题和解决方式,还有些遗留的问题,后续再继续研究。

我的博客地址:http://www.dayali.net/Home   后台地址:http://www.dayali.net/Admin/Home  欢迎访问!

源代码地址:https://github.com/Allen0910/DayaliBlog

 

以上是关于.net core web发布到CentOS汇总的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net Core 程序开发技巧汇总

如何使用 MongoDB 将动态 JSON 属性发布到 C# ASP.Net Core Web API?

.NET Core 2.0 Preview2 发布汇总

.NET Core 技巧汇总篇

快速搭建CentOS+ASP.NET Core环境支持WebSocket

.Net Core Linux centos7行—发布程序到生产环境