自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 token作用实现原理以及登录验证机制图解

1:首先,先了解一下request和session的区别 request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中。在这个过程中可以使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。re...

2020-06-16 18:20:14 38 0

转载 token作用实现原理以及登录验证机制图解

原理 后端不在存储认证信息,而是在用户登录的时候生成一个token,然后返回给前端,前端进行存储,在需要进行验证的时候将token一并发送到后端,后端进行验证 加密的方式:对称加密和非对称加密,对称加密指的是加密解密使用同一个密钥,非对称加密使用公钥和私钥,加密用私钥加密,解密用公钥解密 主要...

2020-06-16 18:17:17 24 0

原创 简单理解token机制

在简单理解cookie/session机制这篇文章中,简要阐述了cookie和session的原理。本文将要简单阐述另一个同cookie/session同样重要的技术术语:token。 什么是token token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。 ...

2020-06-16 18:04:00 27 0

原创 sql server 查看索引碎片大小,并定期重建索引

查看碎片情况使用 dbcc showcontig 函数来进行 代码: --改成当前库 use DB_Name --创建变量 指定要查看的表 declare @table_id int set @table_id=object_id('TableName') --执行 db...

2020-06-15 15:18:06 32 0

转载 SQL Server 重建索引|索引重组|索引的碎片检查

什么是索引碎片呢? 由于表上有过度地插入、修改和删除操作,索引页被分成多块就形成了索引碎片,如果索引碎片严重,那扫描索引的时间就会变长,甚至导致索引不可用,因此数据检索操作就慢下来了。 检查索引碎片 SELECT OBJECT_NAME(dt.object_id) , ...

2020-06-15 15:16:22 32 0

转载 [笔记整理]SQL Server 索引碎片 和 重建索引

铺垫知识点: 数据库存储本身是无序的,建立了聚集索引,会按照聚集索引物理顺序存入硬盘。既键值的逻辑顺序决定了表中相应行的物理顺序 多数情况下,数据库读取频率远高于写入频率,索引的存在 为了读取速度牺牲写入速度 页 为最小单位 8kb 区物理连续的页(8页)的集合 内部碎片 数据库页内部产...

2020-06-15 15:14:38 40 0

转载 浅谈 exists 和 in 的执行原理及使用场景

exists的执行原理: 对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避免(尽量用小表),故内表大的使用exists,可加快效率; in的执行原理 是把外表和内表做hash连接,先查询内表...

2019-11-19 16:22:46 31 0

转载 C#反射详解

反射定义   反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了特性,可以利用反射对它们进行访问。【MSDN】 使用场景 需要访问程序元数据的特性。 检查和实例化...

2019-11-08 16:43:38 41 0

原创 C# task和timer实现定时操作

C#中,定时器,或者叫作间隔器,每隔一段时间执行一个操作。 1.Timer本身就是多线程 C#中为不同场合下使用定时器,提供了不同的Timer类,在asp.net中一般使用System.Timers.Timer。 这个类也很简单,在微软官方文档可以查看如何使用。 C#的timer,本身就封装...

2019-09-05 14:47:25 301 0

原创 C#使用Timer.Interval指定时间间隔与指定时间执行事件

C#中,Timer是一个定时器,它可以按照指定的时间间隔或者指定的时间执行一个事件。 指定时间间隔是指按特定的时间间隔,如每1分钟、每10分钟、每1个小时等执行指定事件; 指定时间是指每小时的第30分、每天10:30:30(每天的10点30分30秒)等执行指定的事件; 在上述两种情况下,都需...

2019-09-05 14:46:31 316 0

原创 rabbit 相关文章

1、使用EasyNetQ组件操作RabbitMQ消息队列服务 https://www.jianshu.com/p/bba32c82565c 2、.net平台的rabbitmq使用封装 https://blog.csdn.net/zk65645/article/details/60335109...

2019-08-04 21:54:16 81 0

原创 保留小数的位数,不四舍五入

double m1 = 12.3476; //保留两位小数 double m3 = Math.Truncate(m1 * 100) / 100; //得到结果是:12.34

2019-08-02 10:21:43 43 0

原创 主线程处理子线程的异常

一直接在主线程捕获子线程异常(此方法不可取) using System; using System.Threading; namespace CatchThreadException { class Program { static void Main(string[] ar...

2019-07-30 09:57:45 36 0

原创 SQL Server中@@ROWCOUNT的用法

SQL Server中@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型。如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG。 @@ROWCOUNT和@@ERROR变量的值,在执行完一条语句后总是会发生变化,所以我们将他们作为判断的依据的时候应该首先保存在局部变量...

2019-07-25 17:36:09 60 0

原创 Merge的用法

Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。 MERGE 目标表 USING 源表 ON...

2019-07-05 09:57:58 45 0

原创 IIS7.5标识介绍

应用程序池的标识是运行应用程序池的工作进程所使用的服务帐户名称。默认情况下,应用程序池以 Network Service用户帐户运行,该帐户拥有低级别的用户权限。您可以将应用程序池配置为以 Windows Server® 2008操作系统中的内置用户帐户之一运行。例如,您可以指定Local Sys...

2019-05-16 18:50:30 74 0

转载 Fiddler 抓包工具总结

序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。 ...

2019-03-26 12:02:08 46 0

原创 C# Async与Await用法

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; names...

2019-01-15 14:25:31 187 0

转载 四种常见的 POST 提交数据方式对应的content-type取值

application/x-www-form-urlencoded  这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(...

2019-01-08 16:43:06 374 0

原创 .netMVC:Web页面向后台提交数据的方式和选择

众所周知Web前端页面主要由HTML/CSS/Javascript组成,当要通过与用户的交互实现各种功能时,就需要向后台提交一些数据或者操作。在Web世界里各种实现眼花缭乱,但究其根本,不外乎三种方式,这也是由前端脚本、浏览器与后台交互规则决定的。 1、通过表单提交 这是HTML支持最传统的提...

2018-11-15 10:54:16 125 0

转载 websocket-sharp使用手册

Welcome to websocket-sharp! websocket-sharp supports: RFC 6455 WebSocket Client and Server Per-message Compression extension Secure Connection ...

2018-10-12 13:55:48 3703 0

转载 Websocket(一)——原理及基本属性和方法

初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。 举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做...

2018-10-12 10:39:49 1107 0

原创 HTML5 WebSocket

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连...

2018-10-12 09:57:09 75 0

转载 基于WebSocketSharp 的IM 简单实现

WebSocketBehavior WebSocketBehavior是核心对象,他包含了OnOpen,OnMessage,OnClose,OnError四个方法以及一个Sessions对象。熟悉websocket的都知道前四个方法是用来处理客户端链接、发送消息、链接关闭以及出错。session...

2018-10-08 17:59:06 1248 0

原创 c#版本的websocket服务

当前有一个需求,需要网页端调用扫描仪,javascript不具备调用能力,因此需要在机器上提供一个ws服务给前端网页调用扫描仪。而扫描仪有一个c#版本的API,因此需要寻找一个c#的websocket库。 java里有大名鼎鼎的netty,通过搜索,c#可以选择websocket-sharp来实...

2018-10-08 17:52:33 323 0

转载 ArrayBuffer和TypedArray,以及Blob的使用

阅读目录   前端使用TypedArray编辑二进制   FileReader读区blob文件   blob转化为typedArray 参考: 回到顶部   前端使用TypedArray编辑二进制   ES6提供了, ArrayBuffer和TypedArray, 让前端也可以直接操作...

2018-09-29 00:01:41 166 0

转载 HTML5新特性之文件和二进制数据的操作

  历史上,JavaScript无法处理二进制数据。如果一定要处理的话,只能使用charCodeAt()方法,一个个字节地从文字编码转成二进制数据,还有一种办法是将二进制数据转成Base64编码,再进行处理。这两种方法不仅速度慢,而且容易出错。ECMAScript5引入了Blob对象,允许直接操...

2018-09-28 23:59:56 65 0

转载 SQL语句执行效率及分析

1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询性能测试,比较两种查询的性能 SQL查询效率 step by step -- setp 1....

2018-08-21 17:33:52 171 0

原创 索引的升降序

1.在创建索引的时候,如果索引中的数据列只有一个,那么不管是升序还是降序的定义,在查询中使用成本都是一样的。 2.如果索引中的数据列有多个,那么每一个列的升序和降序就非常的重要,如果在查询中的列的排序和索引中定义的不一样,成本就很大,反正,就很小。 联合索引是由多个字段组成的索引。 唯一索引...

2018-08-20 10:43:40 392 0

转载 C#使用ServiceController控制windows服务

C#中,使用ServiceController类控制windows服务,使用之前要先添加引用:System.ServiceProcess,然后在命名空间中引用:using System.ServiceProcess。下面举例获取本机的所有已安装的Windows服务和应用,然后查找某一应用活服务是否...

2018-07-31 16:53:02 2745 0

转载 关于C#创建windows服务的测试与总结

 关于C#创建windows服务的测试与总结。.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载。 今天给大家提供一种方式(经过测试),直接使用这样的程序来安装/卸载服务,并且可以让一个exe即能直接运行也可以安装为window...

2018-07-31 16:52:22 322 0

转载 谈谈C#文件监控对象FileSystemWatcher使用感受

最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容。首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能超过1S,而且每次获取到文本内容都要去分发给WEB服务器做别的操作,而那个文本的写入有时候会频繁,1秒可能多次,但是也有可能在相当长一段时间内是没有任何...

2018-07-31 14:49:05 315 0

转载 C# BackgroundWorker用法详解

在C#程序中,经常会有一些耗时较长的CPU密集型运算,如果直接在 UI 线程执行这样的运算就会出现UI不响应的问题。解决这类问题的主要途径是使用多线程,启动一个后台线程,把运算操作放在这个后台线程中完成。但是原生接口的线程操作有一些难度,如果要更进一步的去完成线程间的通信就会难上加难。 还好 ....

2018-07-31 14:22:12 108 0

转载 委托和事件的区别

首先,我们知道委托和事件都可以用来调用跟自己方法签名一样的方法。容易混淆大家的地方大多在于这两者之间的区别。从我们使用委托delegate和事件event上的主要有两大区别(如表1所示)。                           表1 委托和事件的区别 序号 区别 委托...

2018-07-30 11:58:03 143 0

原创 关于Invoke和InvokeRequired、BeginInvoke理解

在多线程应用中将会涉及不同的线程访问同一控件的问题,C#中禁止跨线程直接访问控件。某个控件在被创建时就记下了是谁创建了它,即它的创建线程。如果从另一个线程调用该控件,那么必须使用控件的 Invoke 方法来将调用封送现在调用它的线程。 到底是哪个线程要使用该控件呢?需要用InvokeRequir...

2018-07-27 10:41:27 223 0

转载 C# WinForm 多线程中弹出MessageBox阻塞窗口的实现方法

前些天写了个程序,为了不造成程序窗口的假死,用了多线程来处理一些事情,完了之后弹出MessageBox提示,但是发现弹出来的MessageBox提示框不在程序窗口的最前端显示,一不小心点到主窗口,弹出框就被挡住了,这并不符合设计要求,于是找了如下方法: ↓双击代码段选中复制↓ 1 ...

2018-07-27 10:00:37 3562 0

转载 C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

 默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字段;如果为类编写了构造函数,那么编译器就不会再自动生成无参构造函数了。ps.C#不允许用户为结构定义无参构造函数。       静态构造函数,不能访问实例成员,只能用来初始化一些静态字段或者属性...

2018-07-19 14:57:36 109 0

转载 关于C#中readonly的变量赋值问题。

const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写。那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型:静态常量(compile-time constants)和动态常量(runtime consta...

2018-07-19 13:46:57 510 0

原创 C#提示:“在证书存储区中找不到清单签名证书”的解决方法

本文实例讲述了C#提示:“在证书存储区中找不到清单签名证书”的解决方法。分享给大家供大家参考。具体分析如下:一、问题:程序重新生成,提示错误:在证书存储区中找不到清单签名证书。二、解决方法:可能是之前部署的程序证书被我删掉了或是证书过期了,结果出现这个问题。解决方案如下:方案1:右击项目属性—&a...

2018-07-14 01:59:24 348 0

原创 Install-Package : Microsoft.Bcl 1.1.10程序包需要 NuGet 客户端版本2.8.1或更高

标题: Install-Package : Microsoft.Bcl 1.1.10程序包需要 NuGet 客户端版本2.8.1或更高...Install-Package : Microsoft.Bcl 1.1.10程序包需要 NuGet 客户端版本2.8.1或更高版本,但当前的 NuGet 版本...

2018-07-14 01:58:23 2492 2

提示
确定要删除当前文章?
取消 删除