1. 首页
  2. 文章列表
  3. 博主开源项目——本站博客项目MyBlogs.Core,迁移至.NET Core完成

在保证功能和数据库结构不变的情况下,终于完成了到.NET Core 2.2的迁移!

.NET Core版本不依赖于具体的数据库,已测试SQL Server和mysql正常,其他数据库还请自测;也不依赖于数据库的开发模式,code First、DB First均可自由切换。

.NET Core版本的部分功能在Linux下可能无法使用,须待测,比如:硬件监测。

项目简介

https://masuit.com/misc/3

github

https://github.com/ldqk/Masuit.MyBlogs

老项目已经移动到分支net461

开发环境

操作系统:Windows Server 2012 R2

IDE:Visual Studio 2017 Enterprise

数据库:SQL Server 2017

Redis:redis-server-windows 3.2

运行环境

操作系统:Windows Server 2012 R2/Linux+docker

数据库:SQL Server 2012 express

Redis:redis-server-windows 3.2

运行时:.NET Framework 4.7.2/.NET Core 2.2

服务器配置:2核+2GB+2M,香港云

硬件要求


最低配置推荐配置
CPU1核2核
内存1GB2GB
带宽1Mbps2Mbps
数据库SQL Server 2008

SQL Server 2012

项目架构

现在只有这么一个项目了,额外的引用了Masuit.Tools.Core这个项目作为工具库,因为.NET Core无处不在的依赖注入,使得数据库和ORM之间没有了强依赖的关系,这使得更换数据库的成本相对较低,所以所有的代码都全部放在了一起。

文件夹定义:

App_Data:存放网站的一些常规数据,以文本的形式存在,这类数据不需要频繁更新的。

Common:之前老项目的Common项目;

Configs:项目的一些配置对象

Controllers:控制器

Extensions:一些扩展类或一些项目的扩展功能,比如hangfire、ueditor、中间件、拦截器等;

Hubs:SignalR推送服务类;

Infrastructure:数据访问基础设施,包含Repository和Services,相当于老项目的DAL和BLL;

Migrations:数据库CodeFirst模式的迁移文件;

Models:老项目的Models项目,存放一些实体类或DTO;

Views:razor视图

wwwroot:项目的所有静态资源;

核心功能点技术实现

文章防XSS:通过Masuit.Tools.Core封装的防XSS方法实现富文本html的过滤

post.Content.HtmlSantinizerStandard()

文章图片上传:将上传到服务器的图片转发到新浪图床,如果上传失败,降级上传到sm.ms等其他图床。毕竟是免费的,可能不是长久之计,有条件的童鞋可以去申请专用的OSS服务器。

服务器监控:通过Masuit.Tools.Core封装的SystemInfo类实现服务器硬件资源的实时监控,结合SignalR主动推送,图表使用highchart动态更新。

分布式任务调度:通过hangfire实现,结合hangfire控制面板,实现后台任务的监控。

基于Redis的Session实现:程序产生一个SessionID后写到客户端的Cookie,这个SessionID对应了Redis的一个List,而List里面的每个键则是用户每个Session里的每个元素,滑动过期20min,Masuit.Tools封装实现。

恶意请求拦截:如果同一个客户端每分钟内请求数达到阈值,则将该客户端拦截掉,或者同一客户端请求连续次数上限的错误页,也视为机器人,拦截掉。

服务器文件资源管理器:结合angular-filemanager实现服务器的资源管理器。

项目部署

编译:

编译需要将Masuit.Tools项目也一起clone下来,和本项目平级目录存放,才能正常编译,否则,将Masuit.Tools项目移除,通过nuget安装也是可以的。

配置文件:

主要需要配置的是数据库连接字符串,BaiduAK;

同时,BaiduAK参与了数据库的加密,如果你没有BaiduAK,自行到百度地图开放平台申请,免费的。

如果Redis不在本机,需要在配置文件中的Redis节下配置,固定为Redis,值的格式:127.0.0.1:6379,allowadmin=true,若未正确配置,将按默认值“127.0.0.1:6379,allowadmin=true,abortConnect=false”。

IIS:部署时必须将应用程序池的标识设置为LocalSystem,否则无法监控服务器硬件,同时需要安装.NET Core 2.2 Runtime & Hosting Bundle for Windows (v2.2.1)运行时环境,IIS程序池改为无托管代码

独立运行:配置好环境和配置文件后,可直接双击Masuit.MyBlogs.Core.exe运行。

docker:自行爬文。

https:如果你没有申请https证书,发布时将Program.cs中的这段代码去掉


运行参数:

网站默认会以5000和5001端口运行,如果需要指定端口,需要在程序启动时从控制台带入参数,或者从环境变量获取

后台管理:

初始用户名:masuit

初始密码:123abc@#$

分享到:

下载为Word文档

文章历史版本:

修改次数:7 次 查看历史版本

版权声明:

本文仅用于学习、研究和交流目的,欢迎非商业性质转载。本文链接:https://masuit.com/1239

l  博主在此发文(包括但不限于汉字、拼音、拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对观点。如需要详查请直接与键盘生产厂商法人代表联系。挖井挑水无水表,不会网购无快递。

l  博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。

l  博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章,请原谅博主成为一个无耻的文档搬运工!

l  文章内容部分来源于互联网,不代表本人的任何立场;涉及到的软件来源于互联网,仅供个人下载使用,请勿用于商业用途,版权归软件开发者所有,下载后请于24小时内删除,如有真实需要请支持正版!因下载本站任何资源造成的损失,全部责任由使用者本人承担!如果你是版权方,认为本文内容对您的权益有所侵犯,请联系博主,并参照侵删联系的说明提交相应的证明材料,待博主进行严格地审查和背景调查后,情况属实的将在三天内将本文删除或修正。

相关推荐:

博主开源项目——基于ASP.NET MVC5的单点登录系统与权限集成:SSO.Passport.IdentityServer 博主开源项目——.NET万能框架:Masuit.Tools_2.2.5版本发布

评论区: