<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aining2608的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aining2608</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aining2608]]></copyright><item><title><![CDATA[国产linux 中标麒麟安装.net core sdk]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/102453074</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/102453074</guid><author>aining2608</author><pubDate>Tue, 20 Aug 2019 13:26:00 +0800</pubDate><description><![CDATA[项目背景
最近接到了一个需求，是要把原有部署在Windows服务器上的网站部署到国产操作系统上（环保行业的码农，zf机关推行国产化），最终选型中标麒麟操作系统，所以原有.net framework需要迁移到.net core上面，同时看了一下.net core sdk的安装，发现并没有支持我们这个中标麒麟系统。
查了一下资料，最终只找到了一个大哥做过参考了一下，也是万分感谢。
我也尝试了...]]></description><category></category></item><item><title><![CDATA[WebApi分块下载文件]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166555</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166555</guid><author>aining2608</author><pubDate>Fri, 29 Mar 2019 16:33:00 +0800</pubDate><description><![CDATA[事情是这样的，最近改了下载文件的接口，原来是直接返回文件在服务器的路径，感觉不怎么好，所以就改了一下改成直接返回文件流。但是别人嵌入式的同事调用以后发现改成流以后就不能分块下载文件了，这才了解到原来嵌入式设备下载大文件一般会采取分块的方式进行下载，这样的好处是一部分一部分的下载，如果断了也能断点续传。


  特意研究了一下，文件的断点续传原来http协议中本身就支持...]]></description><category></category></item><item><title><![CDATA[C#根据反射生成sql语句（Update语句）]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166552</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166552</guid><author>aining2608</author><pubDate>Tue, 08 Jan 2019 10:24:00 +0800</pubDate><description><![CDATA[　　今天有人问我Update语句怎么搞，想了一下大致思路就是用特性去标识一下，主键，然后再去用反射的方式拼sql语句。
　　想着晚上再写，又想了想的确好久没写博客了，也好久没正儿八经写代码了，就顺手给写了下来。

一、主键特性　

/// &lt;summary&gt;
    /// 主键特性（在实体类的上方加这个特性，指定该类的主键名称）
    /// &lt;/s...]]></description><category></category></item><item><title><![CDATA[C#使用GrdiFS实现在MongoDB中对文件操作]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166550</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166550</guid><author>aining2608</author><pubDate>Sun, 16 Dec 2018 21:47:00 +0800</pubDate><description><![CDATA[　　最近一直在搞负载均衡一块的东西，遇到了一个问题就是文件相关的。这个问题是这样的，一般情况下，我们文件都是存在服务器的本地路上上，正常情况下，完全没问题，但是当服务需要搭负载均衡时，这种文件存储方式的问题就显现出来了。例如我的文件在A服务器上面，当访问B服务器时，就会找不到这个文件，所以我就想办法解决这个问题，无意中发现MongoDB可以存储文件（也不是没想过用数据库存，只是觉得数据库...]]></description><category></category></item><item><title><![CDATA[SqlServer2008R2镜像（无域）]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166563</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166563</guid><author>aining2608</author><pubDate>Mon, 16 Jul 2018 17:08:00 +0800</pubDate><description><![CDATA[一、描述
在生产环境中，不仅我们的应用服务器需要做高可用，数据服务器同样需要做高可用，否则，一旦数据服务器出问题，整个系统就直接崩溃了。
这里我们介绍一下，使用SqlServer镜像的方式实现SqlServer的高可用。
二、搭建准备
我使用的是虚拟机来搭建环境：




机器名


版本


IP




WIN-SJPRGC2O1KO

...]]></description><category></category></item><item><title><![CDATA[MEF（可扩展框架）使用总结]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166548</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166548</guid><author>aining2608</author><pubDate>Tue, 19 Jun 2018 12:21:00 +0800</pubDate><description><![CDATA[一般情况下，我们对系统要求：
1.对扩展开发对修改关闭
2.高层模块不应该依赖于低层模块，应该依赖于抽象
实际上，这是遵循了面向对象的设计原则中的开放封闭原则和依赖倒置原则，其所做的事情就是为了提高系统的可扩展能力和对代码解耦。
为了满足上述的要求，我们引用了微软的MEF框架，让他来帮助我们做这些事情。
一、概念
　　MEF(Managed Extensibility Fr...]]></description><category></category></item><item><title><![CDATA[consul consul-template nginx keepalived 搭建高可用负载均衡(支持TCP和http)]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166546</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166546</guid><author>aining2608</author><pubDate>Fri, 25 May 2018 14:01:00 +0800</pubDate><description><![CDATA[consul consul-template nginx keepalived 搭建高可用负载均衡

搭建准备
两台windows服务器 IP分别为192.168.103.151和192.168.103.152
两台linux服务器（centos7）IP分别为192.168.103.150和192.168.103.153
(这里使用VMware虚拟机搭建该方案)
思路
　...]]></description><category></category></item><item><title><![CDATA[Jenkins实现SVN .NET持续集成]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166562</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166562</guid><author>aining2608</author><pubDate>Tue, 17 Apr 2018 11:07:00 +0800</pubDate><description><![CDATA[　　在工作过程中，由于经常要提版本给测试，再由测试负责发布，经常会出现，提测一个产品，需要发布多个服务，包括网站，网站的服务，网站的后台管理已经后台管理的服务。总之，一次提测，要发布的东西会非常多，开发麻烦，测试更加麻烦，所以为了解决这个问题，决定采用Jenkins来实现一键发布。
一、安装Jenkins
　　Jenkins下载地址：https://jenkins.io/
　　选择...]]></description><category></category></item><item><title><![CDATA[C#使用反射根据实体生成sql语句（添加和批量添加）]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166544</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166544</guid><author>aining2608</author><pubDate>Sun, 01 Apr 2018 21:01:00 +0800</pubDate><description><![CDATA[　　最近碰上这个一个需求，需要写一个接口，将穿进来的参数，存储到数据库里，但是存到哪个库，哪个表，不确定，需要根据参数去判断，但数据结构是固定的，因为表名不是固定的，所以这就很麻烦了，不能用EF直接去add或者是addRange了。需要自己去拼sql语句。
　　但是本人比较懒，懒得去写sql语句，所以就写了一个自动生成Insert语句的通用方法，代码如下

/// &lt;summ...]]></description><category></category></item><item><title><![CDATA[EntityFrameWork+MVC防SQL注入]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166559</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166559</guid><author>aining2608</author><pubDate>Tue, 14 Nov 2017 09:51:00 +0800</pubDate><description><![CDATA[EntityFrameWork（以后简称EF）作为一款ORM非常的实用，能够大幅度的提高开发速度，但是EF的实质也是sql语句，同样需要防sql注入，在这里利用过滤器的特性来实现过滤特殊字符。
1.首先是过滤的代码

 1 public class SqlFilterAttribute : FilterAttribute, IActionFilter
 2     {
 3 ...]]></description><category></category></item><item><title><![CDATA[c#使用ImageProcessor 对图片进行切片]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166541</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166541</guid><author>aining2608</author><pubDate>Thu, 02 Nov 2017 11:55:00 +0800</pubDate><description><![CDATA[在日常工作中经常会出现图片过大，导致不能打印的情况，在这里会介绍将一张大图切割为若干小图的方法。
　　首先操作图片使用的是ImageProcessor.dll。（下载方法，程序包管理控制台输入“Install-Package ImageProcessor”）
　　然后开始直接上代码

 1 　　　　 /// &lt;summary&gt;
 2         /// 切片
...]]></description><category></category></item><item><title><![CDATA[c# 使用ZXing.Net生成二维码]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166557</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166557</guid><author>aining2608</author><pubDate>Sat, 30 Sep 2017 16:38:00 +0800</pubDate><description><![CDATA[生活中使用二维码还是很多的，前段时间公司领导让研究一下二维码，所以，在这写下研究的心得。

生成二维码的途径一般有两种，一是，通过前端方式生成二维码使用 QRCode.js生成二维码，二就是通过服务端代码生成，这里主要说服务器端的生成二维码的方式。
一，首先服务端生成二维码，通过调用dll就可以了，比较常用的dll有两种一种是QrCode.Net另一种是ZXing.Net，我选择...]]></description><category></category></item><item><title><![CDATA[通过uri通知浏览器弹出下载框]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166556</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166556</guid><author>aining2608</author><pubDate>Mon, 17 Apr 2017 16:29:00 +0800</pubDate><description><![CDATA[1 //通知浏览器下载
2 function downloadFile(uri) {
3     var elemIF = document.createElement("iframe");
4     elemIF.src = uri;
5     elemIF.style.display = "none";
6     document.body.appendChild...]]></description><category></category></item><item><title><![CDATA[JQuery动态操作表格]]></title><link>https://blog.youkuaiyun.com/aining2608/article/details/101166554</link><guid>https://blog.youkuaiyun.com/aining2608/article/details/101166554</guid><author>aining2608</author><pubDate>Tue, 10 Jan 2017 22:50:00 +0800</pubDate><description><![CDATA[　　新人，小白一枚，刚刚参加工作，所以会在这里记录一些遇到的问题。
　　最近要做的东西，是对一个表格动态的添加行，删除行，并且对表格中内容进行非空验证。

&lt;!DOCTYPE html&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Conte...]]></description><category></category></item></channel></rss>