自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于MailKit的发送邮件辅助类

MailKit是Net下免费开源的邮箱类库,其github地址为:https://github.com/jstedfast/MailKit一般情况下,MailKit都工作的很好,但可能是姿势不对,在发送附件时,只要附件名为中文名,接收方接收到的附件名必然是乱码或者tcmime.xx.xx.xx.bin 这种完全不明觉厉的东东(具体会乱码还是显示tcmime跟文件名长度有关),作为对于邮件协议不明觉...

2018-06-15 15:53:40 6277

原创 ABP天坑--UOW自动保存修改

ABP项目也做了挺久了,实际上也没碰上太多的问题,但这两天被ABP的自动保存修改(Automatically Saving Changes)这个天坑给恶心坏了因为项目设计上的问题,原先为了方便加上环境限制,没有文件服务器来进行文件持久化服务,这样多个系统之间如何共享文件就成了个问题,所以当初设计上采取了个偷懒的方式,直接将文件保存到MySql中,所有系统要用这些文件时,都去数据库中读取……上面描述...

2018-06-08 15:24:28 2727 5

原创 TemplateManager,记录一份失败的代码

Spire.Pdf这个控件应该蛮多需要操作pdf的开发都多少接触过,其标榜免费的版本FreeSpire.Pdf,按其官方声明,也仅仅比商业版多了一些限制,但其实还隐藏性的做了一些其他限制,而其声明中根本没提及的不支持多线程并发操作,恰恰是导致了标题描述的失败代码产生!先说下使用场景,业务需要按模板批量生成PDF文件,在最初使用Spire.Pdf进行单个文件生成测试时,一切都很顺利,而当测试多线

2018-05-10 13:55:54 582

原创 quartz.net 3.x版本如何通过xml文件进行Job配置

在2.x版本中,我们可以简单的在quartz.config文件中通过以下Xml配置方式来注册相应的Job以及触发器quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartzquartz.plugin.xml.fileNames = ~/quartz_jobs.xml但在3.x中直接如此

2018-04-20 11:49:15 5785

原创 写烂了的C#获取枚举对应的描述信息

为什么说是写烂了的?这的确是写烂了的,N年就写过,网上一搜更是一大把既然是写烂了的,为啥还要再写?首先因为网上都是仅仅反射获取,没考虑过额外的增加一个缓存步骤来提高性能;其次网上的也都只是对应特定特性,如果需要再支持其他特性就需要改下代码;最后如果是第三方枚举,本身并没提供任何描述特性,这里也可以通过一个额外的注册过程来达到与有描述特性一致的使用效果因为仅是辅助类,所以无需长篇累牍,直接上

2018-04-19 11:37:12 1190 1

原创 ASP.NET MVC Core中launchSettings.json修改导致VS2017无法启动IIS Express问题

项目开发往往避免不了与其它系统的交互,而在开发过程中,直接通过VS调试状态与其它项目组成员进行调试也算是比较方便的调试方案(当然一般这也仅仅是内网调试状态),所以就引出了今天这个问题,VS 2017居然无法启动IIS Express!默认创建一个新的MVC core项目时,在Properties文件夹下,会有launchSettings.json文件,该文件的具体描述介绍可见此处,默认的app

2018-04-02 15:25:36 4304

原创 C#下如何控制并发运行的Task数量

首先需要说明的是Task不等于Thread,只是微软默认实现ThreadPoolTaskScheduler是依赖于线程池的,因为该类的可访问性为internal,所以我们在实际编码中无法直接在代码中new这么一个Scheduler出来,只能通过TaskScheduler.Default间接的来使用好了上面好像偏题了,回到原题,为什么需要控制Task数量?假设有这样一个场景,有一批Task需执行

2018-03-27 14:18:05 31847 13

原创 Polly善用Context来记录异常发生时的参数信息

Polly是一个.NET弹性和瞬态故障处理库,具体用法可以参考:https://github.com/App-vNext/Polly,此处不会细讲如何使用Polly来进行异常处理或重试,就如标题所说,本篇内容主要为异常发生时除了Exception,又如何获取记录发生异常时你可能关心的数据信息可能你们会觉得这么简单的问题有什么好说的,直接在方法内try catch记录后,再throw不就行了?当

2018-03-22 17:06:16 665

原创 ABP模板含Zero用户角色的项目还原数据库及数据至MySql相关问题记录

ABP是啥这里就不多说了,既然都已经到还原数据库了,肯定对ABP已经有所了解,ABP通过官网创建时目前提供两种方式:ASP.NET MVC 5.x、ASP.NET Core 2.x,这里分别描述ASP.NET MVC 5.x参考地址:https://www.cnblogs.com/LonelyCode/p/6477065.html,但按文章最终执行Update-Database时,会报各种异常,以...

2018-03-09 16:46:53 1979

原创 Xml序列化当泛型不同时序列化(反序列化)为不同的Xml节点名称

在我们提供接口服务给第三方调用时,一般会采用Request/Response模式,即请求与响应都采用统一的外部封装,真正的业务数据则由Request/Resonse的某个参数比如Data之类的类进行承担,以Request为例,该请求类假设定义成如下内容: /// /// 数据请求类 /// /// [XmlRoot("Request")] pub

2018-03-07 16:59:29 2662

原创 C#下对PDF文件进行电子图片签名

能够对pdf进行图片签名的,网上找来找去,就一个iText是免费的,但这个免费是AGPL协议,当然它也有商业协议,iText现在有5和7两个版本,这里我采用的是版本5,nuget下载地址为:https://www.nuget.org/packages/iTextSharp/,然后为了多做比较,我这里还找了Spire.PDF进行测试,其免费版本Free.Spire.PDF还是3.2版本,而其收费版本...

2018-02-07 11:40:49 3512 3

原创 C#下实现RSA公钥私钥由pcks8格式(java)转化为pcks1格式(非java)

对于Pcks不了解的可以先看下PKCS标准,然后这里暂时只有pcks8格式转化为pcks1格式,暂时还没能找到直接通过BouncyCastle来转化pcks1格式到pcks8格式的方法或代码(当然可以借由RSACryptoServiceProvider来进行读取,然后再进行间接的转化),只找到了通过openssl来转化pcks1到pcks8的方法,以下为代码: using Org.Bounc

2018-02-01 10:44:01 2740 1

原创 C#下生成CSR证书签名请求

首先普及下知识,CSR是证书签名请求,它不是证书,是用于向CA公司申请证书的,以下为代码: using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto; using O...

2018-01-31 14:56:01 1707 2

原创 C#实现RSA公钥加密私钥解密、私钥加密公钥解密以及Pcks12、X509证书加解密、签名验签

RSA的私钥签名公钥验签可以见http://blog.csdn.net/starfd/article/details/51917916,所以这里就没提供对应代码,具体代码如下: using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Asn1.X509; ...

2018-01-25 17:07:17 18466 1

原创 C#下支付宝新版异步回调数据处理及校验(需支付宝提供的AopSdk)

对于支付宝,我们首先得赞扬下,提供了NET下的SDK,这个AopSdk当真是大而全,但同时却又不得不吐槽下,都提供了那么多的Request/Response(笔者下载的是alipay-sdk-NET20170615110549,里面光Request就有556个),但回调这一块居然一点都没提供(我确信肯定没提供,因为我按各种关键字进行了全文搜索),开放平台上也只说提供了服务端SDK,包含签名之类的功...

2018-01-17 16:25:36 6821 4

原创 NET Standard/Core中配置使用TargetFrameworks输出多版本类库及测试

在core之前,要使一个项目支持多个Frame版本,那么可行的办法就是创建多个版本的项目,然后以一个项目为主体,其它版本以添加--现有项--添加为链接的方式将代码文件添加到对应版本中,如果代码不同,则需要使用#if标签,而在core之后,如果需要发布多版本,可以不再需要创建多个项目,这里以VS2017为例首先我们创建一个项目,可以是Standard类库,也可以是Core应用,这里我选择创建一个...

2017-12-19 11:48:27 19174 3

原创 3DES将16位秘钥升级为24位

C#下TripleDES默认支持16位和24位的秘钥,而Java下的DESedeKeySpec就只支持24位,其实怎么说呢,按3DES规范要求,的确其秘钥应该是24位而不是16位的,但16位秘钥可以按前8位+后8位+前8位 的规则来升级成24位的秘钥,所以我们只需要简单的通过数组的Copy就可以将16位秘钥升级为24位秘钥,下面是相应的代码,Java和C#可以说完全一样,C#16位秘钥加密的结

2017-12-12 17:18:54 4953 1

原创 Hive通过JDBC方式访问时碰到的问题汇总

1、执行hive sql时服务器报Connection refused错误解决方法:Hive没有启动hive server2,可以通过如下指令启动,指令的后半段是指定日志存放地址hive --service hiveserver2 2>&1 >> /home/user/hive/log.log 2>&1 &2、执行hive sql时报 xxxx is not allowed to im

2017-10-19 13:49:23 4366

原创 Hive执行job时return code 2排查

项目测试时,在执行Insert语句时,突然报return code 2错误导致job停止,头一次碰上这种不明觉厉的问题,有问题上百度、bing,首先查到的是Hive jdbc执行insert语句时报 code=1 ,code=2 错误解决方法,看了下,目前还是在hive shell模式下执行,应该不是这问题,而且将insert部分去除,只保留select部分还是报return code 2错误

2017-10-17 14:50:56 15481

原创 Hive永久UDF依赖包问题以及几个日期相关的自定义函数

最近项目用到了hive,需要从mysql中读取一些数据用于hive计算,所以进行了各种百度查询,然后又处理了一些坑问题,最终得到了一个实际可以运行的UDF,其中比较坑的就是依赖包的问题,所以这边记录下首先hive永久UDF很简单,当然目前百度上能查到的都是临时UDF,旧版本的Hive要添加永久函数需要改hive源代码编译然后发布替换package,新版本的hive已经有比较简单的添加永久UDF

2017-09-25 10:27:26 1801

原创 quartz.net配置说明

以前从quartz.net源代码中提炼的相关配置,部分字段虽然识别,但没有搞懂到底是用作何用,只是按名字猜测含义quartz.scheduler.instanceName (应用名,用于区分应用,默认值为QuartzScheduler)quartz.scheduler.threadName (应用线程名,默认值为{quartz.scheduler.instanceName}_QuartzSc

2017-09-01 13:51:36 2793

原创 zookeeper.recipes.leader (C#)

近来有项目要用到zookeeper的选举实现,研究了下后在此做下记录首先下载zookeeper的recipes实现,nuget地址:https://www.nuget.org/packages/ZooKeeperNetEx.Recipes/选举实现逻辑描述可见http://zookeeper.apache.org/doc/r3.4.9/recipes.html#sc_leaderElect

2017-03-13 17:16:53 1265

原创 FastDfs在NET下的使用

FastDfs是一个开源的轻量级分布式文件系统,其原理可以查看http://blog.chinaunix.net/uid-20196318-id-4058561.html,然后部署安装部分可参考http://blog.csdn.net/poechant/article/details/7209313,这里只是简单的说明下在C#中如何使用FastDfs。首先是通过Nuget下载dll,具体地址为

2017-01-16 16:50:37 5153 2

原创 IIS回收情况说明

本文内容基于win7的IIS7.5,该篇内容主要说明什么情况会导致IIS进行回收,以便于当出现回收问题时快速定位问题通过控制面板下的管理工具,可以打开 Internet 信息服务(IIS)管理器,打开后界面大致如下:通过选择“应用程序池”,然后选中你要维护的程序池,最右侧栏目可以看到“编辑应用程序池”选项,点击“正在回收”,会打开如下界面:这是默认情况下的IIS回收设置

2016-12-14 17:21:12 8870 1

原创 MultipartFormDataMemoryStreamProvider修正以支持非IIS宿主的情况

最近做上传,发现以前写的《WebAPI通过multipart/form-data方式接收文件时由开发自行决定如何保存文件》在owin下会取不到文件,所以这里重新修正了下,具体代码如下 using System.IO; using System.Net.Http; using System.Net.Http.Headers; public class Multipar

2016-11-23 18:13:39 8010

原创 Grpc的一个简单的负载均衡类库

首先先列下Grpc的教程,然后目前Grpc的C#的版本为1.0 prev版,反正就是还有坑的阶段,实际会出内存错误导致程序崩溃(内存错误你懂得,unsafe代码异常捕获都没用),这里就当是尝鲜版试验使用了下,然后就简单的写了个类,具体代码如下GrpcChannelTargetsSection,用来配置服务器地址的类 public class GrpcChannelTargetsSec

2016-08-01 10:27:27 6219

原创 将字符串写入txt,然后得到这个文件的byte[],生成文件这个过程真的有必要吗?

故事起源于一个简单的上传功能,功能要求是这样的,将数据按照指定格式拼接,然后写入txt文件,再通过请求对方api进行文件上传。故事背景有了,然后下面介绍故事走向。按个人以往的尿性,肯定是直接将内容按指定编码写入txt中,然后上传了事,但故事(或者说事故)之所以是故事,就在于它一定是不按惯例走的,所以这次理所当然的,脑子必须抽了,然后想到这个txt文件生成是必须的吗?文件内容我都有了,我为什

2016-07-20 19:55:46 3863

原创 RSA加密、解密、签名、验签 DSA签名、验签

重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名、验签的测试代码,主要代码参考http://xw-z1985.iteye.com/blog/1837376重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名、验签的测试代码,主要代码参考http://xw-z1985.iteye.com/blog/1837376重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名、验

2016-07-15 15:44:56 18642 6

原创 SymmetricAlgorithmHelper对称加密辅助类,支持DES,3DES,AES,RC2

理论上只要继承自SymmetricAlgorithm的对称加密算法,该辅助类都支持加密解密,另外为了方便与JAVA互通,默认提供了ECB和CBC两种加密模式、填充方式均为PKCS7的静态方法 using System.Security.Cryptography; public class SymmetricAlgorithmHelper where T : Symme

2016-07-14 14:12:53 4742

原创 C#下对称算法、非对称算法生成秘钥

一个简单的帮助类,因为后面的加密、解密算法要用到,所以这里单独写下 using System.Security.Cryptography; public class KeyGenerator { /// /// 随机生成秘钥(对称算法) /// /// 秘钥(base64格式) /// iv向

2016-07-14 11:00:15 6311

转载 C#下解析、生成JAVA的RSA密钥、公钥

需要用到的dll在nuget上的地址是:https://www.nuget.org/packages/BouncyCastle/,相关转换代码如下: using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto.Parameters;

2016-07-06 14:26:09 12514 2

原创 disconf-web在windows下的部署

disconf,全称 Distributed Configuration Management Platform(分布式配置管理平台),是java下的一个开源项目,其地址为:https://github.com/knightliao/disconf因为作者关于disconf-web项目的部署部分说明完全基于linux,笔者本机不想装个虚拟机再装Linux,所以折腾了N长时间,还找了Java方面

2016-06-01 16:26:44 7909 8

原创 按GB 11643标准对大陆身份证号码分析验证

按照GB 11643标准进行身份证验证,然后GB/T 2260采用的是2013标准,因为实在无法找到GB/T 2260-84标准,所以实际会出现正确的身份证也无法识别的情况,这时候可以通过设置要验证的AreaLevel来降低验证级别,如果能找全所有GB/T 2260标准的话,代码也就能加入按生日判断该采用哪个标准的功能,下面是具体代码2018-03-07补充:该部分代码已被重构集成到https:/...

2016-05-26 11:41:02 10931

原创 MassTransit 学习记录(杂项) IConsumer泛型实现和多继承

前面讲到过,MassTransit的消费三种方式,Consumer方式就是其中的一种,IConsumer是该方式的约定接口。一般来说,每个Exchange对应一个Consumer,即常规代码如下 public class SomeConsumer : IConsumer { public Task Consume(ConsumeContext context)

2016-05-10 15:01:05 2356

原创 MassTransit 学习记录(三) 广播 & 负载

这篇其实不能说是学习记录,而是实战问题以及解决记录了,负载均衡就是将一个程序发布到多台服务器上,通过路由(软/硬)来分配实际的访问指向,这是横向扩展;广播则是将消息推送给所有注册了的消费者,这是一种消息传播方式。这两者其实并没多大关系,只是因为使用MassTransit,那就避免不了会遇到这两个问题,而这两个问题在MQ中又紧密关联,所以一起在这里进行说明。首先是基础部分,我们先看下Rabbit

2016-04-14 15:19:29 3295

原创 MassTransit 学习记录(二) Request/Response

在第一章里,我们已经简单的使用了MassTransit的推送、接收功能,但目前都还只是单方面的推送、接收,实际场景中,我们更多的是会碰到需要返回值的情况,而这一章,就是讲述下在MassTransit中如何进行Request、Response。MassTransit中提供接口IRequestClient来定义Request/Response模式,其具体实现类为MessageRequestClie

2016-03-29 14:14:58 3097

原创 MassTransit 学习记录(一) 初探

MassTransit 是Net下一个开源给予消息队列的ESB,其官方网址为 http://masstransit-project.com/,你可以在上面找到相关的源代码下载地址,nuget链接地址,以及开发文档。本文采用的是当前最新的版本:3.2.4,如果你发现本文例子与官网不符,代表开发者已经修改了相关设计,所以此时以官方为准。本文例子基于RabbitMQ,但本文的重点是MassTra

2016-03-24 18:11:16 8235 1

原创 ReactJs + BootStrap + Pager 分页

好吧,用ReactJs做功能,结果又要分页了,跟分页真是剪不断的猿粪啊,跟JQuery的相比,ReactJs中全是组件,以下为具体代码var PagerLink = React.createClass({ clickEvent:function(){ if(this.props.className.indexOf('disabled')<0 && this.props.className

2016-01-12 17:37:04 6315 2

原创 ReactJs的一些记录

1、基础资料 官方英文版 简体中文版(此版本落后于英文版)ReactJs.NET(在ASP.NET中自动将jsx编译成js)2、其它资料组件间通讯ReactJs兼容IE83、IDE工具VS2015开始才支持ReactJs,所以如果没VS2015的话,可以使用Sublime Text,相关工具及插件资料4、相关问题点补充a)ReactJs相关js文件的加载顺序

2015-12-21 11:07:13 1992 1

原创 ASP.NET如何禁止直接通过Url访问某个类型的文件(非权限),不定时补充

Note:此处不是权限设置问题,此处不是权限设置问题,此处不是权限设置问题!只是出于数据或者网络安全,禁止扫描工具直接扫描到某些包含敏感信息的文件,尤其比如日志、配置等默认ASP.NET已经考虑到了一些安全问题,比如.config后缀的配置文件,比如.cs的源代码文件,比如.log的日志文件,这些默认都是全局设置,但还有些NET没帮我们设置,比如.xml后缀,比如.txt后缀,这些文件里面往往

2015-12-01 15:47:51 18654 1

ZookeeperRecipesElectionDemo

简单的zookeeper选举实现demo

2017-03-13

芝麻信用sdk移动端接入pdf文档

芝麻信用sdk移动端接入pdf文档

2016-12-06

动态加载的图片LazyLoad

用于显示动态加载的图片如何通过JQuery.LazyLoad控件实现延迟加载,可惜目前例子在谷歌浏览器下还有些问题

2015-10-20

WebAPIFileDemo

对应于相应博客的源代码,运行Demo时请先调试服务端,然后开启客户端,如果缺少HttpClient对应的dll,请通过NuGet下载

2015-04-30

拼图小游戏Demo

拼图小游戏的源代码,包含两种方式,适用于对应博客

2015-04-03

特殊日期配置小工具

对应博客的源代码,需要注意调整app.config中的相关配置为你实际希望的xml位置

2015-03-02

SecuritySignTools

修正之前的版本,增加访问非签名方式的WebAPI,删除不必要的dll

2015-02-13

SecuritySignTool

WebAPI防篡改的测试小工具,仅针对相应博客

2015-02-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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