1. 首页
  2. 文章列表
  3. 博主开源项目——本站博客项目MyBlogs

项目简介

https://masuit.com/misc/3

github

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

开发环境

操作系统:Windows Server 2012 R2

IDE:Visual Studio 2017 Enterprise

数据库:SQL Server 2017

Redis:redis-server-windows 3.2

运行环境

操作系统:Windows Server 2012 R2 标准版

数据库:SQL Server 2012 express

Redis:redis-server-windows 3.2

运行时:.NET Framework 4.7.2

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

硬件要求


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

SQL Server 2012

项目架构

核心架构和之前的开源项目SSO.Passport.IdentityServer保持一致

懒得勤快的博客_全栈开发者_互联网分享精神

实线代表实际引用,虚线代表通过反射的方式引用;

应用层的真实引用只需要引用Common和Model以及IBLL即可,从而达到项目间的解耦,但由于生成和发布的原因,导致需要反射引用的类库不能生成到应用层目录下,所以应用层也全部引用了运行时需要的所有项目;

反射引用需要在应用层的web.config中配置DalNameSpace和DalPath以及BllPath,若未配置,则取程序相应的预设值;

如何将应用层的数据请求传到数据层的?

应用程序启动时将通过反射的方式加载业务逻辑层BLL的程序集,并创建相应的接口实例存到autofac容器中,当应用层发起数据请求时,将通过IBLL的接口实例进行处理,依靠BLL调用数据会话层DALFactory来反射创建数据访问层DAL对应的接口实例IDAL,IDAL依靠DAL进行真实的数据库操作,最后将数据返回到应用层。

核心功能点技术实现

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

post.Content.HtmlSantinizerStandard()

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

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

懒得勤快的博客_全栈开发者_互联网分享精神

访客统计:在Session开始时接收客户端的IP和UA等信息,通过hangfire来调度,获取到IP地址的详细信息后写入到数据库,hangfire每小时统计历史数据,包括每日访客走势,独立IP,新增访客,以及每个访客浏览过哪些页面。

懒得勤快的博客_全栈开发者_互联网分享精神

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

懒得勤快的博客_全栈开发者_互联网分享精神

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

懒得勤快的博客_全栈开发者_互联网分享精神

在线人数统计:通过统计Redis里面SessionID的总数实现。在Session结束时会将Redis里面每个访客的记录同步到数据库保存。

懒得勤快的博客_全栈开发者_互联网分享精神

无级菜单的加载,数据表依赖ParentId来确定上下级关系,前端通过递归创建html节点实现递归加载,评论和留言的递归加载也是如此。

懒得勤快的博客_全栈开发者_互联网分享精神

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

懒得勤快的博客_全栈开发者_互联网分享精神

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

懒得勤快的博客_全栈开发者_互联网分享精神

项目部署

配置文件:

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

懒得勤快的博客_全栈开发者_互联网分享精神

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

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

IIS:部署时必须将应用程序池的标识设置为LocalSystem,否则无法监控服务器硬件

懒得勤快的博客_全栈开发者_互联网分享精神


https:如果你没有申请https证书,发布时将web.release.config中的这一节去掉

懒得勤快的博客_全栈开发者_互联网分享精神

后台管理:

初始用户名:masuit

初始密码:123abc@#$


下载为Word文档

文章历史版本:

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

版权声明:

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

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

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

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

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

l  博主只是一名普通的互联网从业者,不懂修电脑,不会卖电脑,不会帮你盗号,不会破解开机密码,找不回你丢失的手机等,如有这样的想法请绕道!

相关推荐:

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

评论区: