摘要:
一、介绍 主机地址过滤中间件相当于一个白名单,标记哪些主机地址能访问接口。 二、使用 新建WebAPI项目,修改Startup中的代码段如下所示。下面表示允许主机名为“localhost”的主机访问(不区分大小写),其他主机地址访问此项目的接口都会返回400错误。 (正常访问) 上面为正常访问情况, 阅读全文
摘要:
一、介绍 在介绍静态文件中间件之前,先介绍 ContentRoot和WebRoot概念。 ContentRoot:指web的项目的文件夹,包括bin和webroot文件夹。 WebRoot:一般指ContentRoot路径下的wwwroot文件夹。 介绍这个两个概念是因为静态资源文件一般存放在Web 阅读全文
摘要:
今天写了一个sql,其中涉及的表中的数据量都差不多为50w左右,查询发现用了8s。这个只是测试服上数据,放到正式服上,肯定一运行就挂了。 然后就用EXPLAIN分析了一下,发现Orders表没有命中索引,但是查询Orders中的GuidNo已经设置了索引,但就是不能命中。 然后我将上面的语句分为两个 阅读全文
摘要:
一、安装 我使用的系统是Ubuntu16.04,不同版本系统参照官网安装步骤。安装官网4个步骤安装好MongoDB并启动。 安装MongoDB可视化工具compass(可视化管理工具比较多,可以看这篇文章介绍)。我的可视化工具是安装在Window上,MongoDB安装在Ubuntu上,现在来远程连接 阅读全文
摘要:
一、介绍 Quartz.Net是根据Java的Quartz用C#改写而来,最新的版本是3.0.6,源码在https://github.com/quartznet/quartznet。主要作用是做一些周期性的工作,或者定时工作。比如每天凌晨2点对前一天的数据统计。 二、简单的案例 以WebApi项目举 阅读全文
摘要:
上一篇文章已经介绍了MemoryCache,MemoryCache存储的数据类型是Object,也说了Redis支持五中数据类型的存储,但是微软的Redis缓存组件只实现了Hash类型的存储。在分析源码之前,先学几个关于Redis操作的命令。 一、Redis命令 Redis所有的命令在http:// 阅读全文
摘要:
一、介绍 由于CPU从内存中读取数据的速度比从磁盘读取快几个数量级,并且存在内存中,减小了数据库访问的压力,所以缓存几乎每个项目都会用到。一般常用的有MemoryCache、Redis。MemoryCache将存入的对象都作为Object对象存储,Redis分为五种类型存储,在微软提供的缓存组件中也 阅读全文
摘要:
一、介绍 容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统和排在上面的应用。 二、容器 2.1 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另一个是将终止状态的容器重新启动。 新建并启动:所需命令主要为 docker run。 阅读全文
摘要:
一、基本概念 Docker包括三个基本概念镜像、容器、仓库。 Docker镜像:就是一个只读的模板。例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或其他应用程序。用户可以直接从其他人那你下载一个已经做好的镜像直接使用。 Docker容器:Docker利用容器来运行 阅读全文
摘要:
1、介绍 Logging组件是微软实现的日志记录组件包括控制台(Console)、调试(Debug)、事件日志(EventLog)和TraceSource,但是没有实现最常用用的文件记录日志功能(可以用其他第三方的如NLog、Log4Net。之前写过NLog使用的文章)。 2、默认配置 新建.Net 阅读全文
摘要:
一、同源策略和资源跨域共享 1、同源策略 同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。 1.1、目的 主要是为了保证用户信息的安全,防止网站窃取用户数据。假如没有同源策略,可能就会有下面这种 阅读全文
摘要:
一、微软内置的日志组件 在.Net Core中使用模板新建的Web Api项目时,会自动加入日志功能。只需要在控制器中注入ILogger就可以了。命名空间为:Microsoft.Extensions.Logging。 会发现只有Error被打印到了控制台,Trace没有被打印。那是因为在appset 阅读全文
摘要:
要想分析MySQL查询语句中的相关信息,如是全表查询还是部分查询,就要用到explain. 一、explain 用法:explain +查询语句。 id:查询语句的序列号,上面图片中只有一个select 语句,所以只会显示一个序列号。如果有嵌套查询,如下 select_type:表示查询类型,有以下 阅读全文
摘要:
最近有一个疑问:IList已经继承了ICollection<T>,而ICollection<T>继承了 IEnumerable<T>, IEnumerable,那为什么IList还要继承 IEnumerable<T>, IEnumerable? 于是我自己写了接口测试:用dnSpy反编译看到,Tes 阅读全文
摘要:
OAuth 2.0 是一个开放的标准协议,允许应用程序访问其它应用的用户授权的数据(如用户名、头像、昵称等)。比如使用微信、QQ、支付宝登录等第三方网站,只需要用户点击授权按钮,第三方网站就会获取到用户在微信、QQ、支付宝的信息(当然信息都是不敏感数据如用户名、头像、昵称等),获取这些信息后,第三方 阅读全文