一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Asp.net

调用微信退款接口时出现System.Security.Cryptography.CryptographicException: 出现了内部错误 解决办法

我总结了一下出现证书无法加载的原因有以下三个   1.证书密码不正确,微信证书密码就是商户号 解决办法:请检查证书密码是不是和商户号一致   2.IIS设置错误,未加载用户配置文件 解决办法:找到网站使用的应用程序池-->右击-->高级设置-->打开如下图-->在加载用户配置文件选择true 3.如果以上两个方案都不能解决问题,就有可能是加载证书时没有给定证书存储标识 解决方法:在加载证书方法时使用以下方法,请注意第三个参数 X509Certificate2 cer = new X509Certificate2(cerPath, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable); req.ClientCertificates.Add(cer);   from:http://www.2cto.com/weixin/201602/489552.html

龙生   10 Aug 2016
View Details

C#接收图片base64格式保存为文件

摘自:http://www.itnose.net/detail/6387947.html

龙生   29 Jul 2016
View Details

【解决】asp.net请求header添加gzip后抓网页源码乱码问题

asp.net抓网页源代码的代码很普遍,大家都会用,不过今天我在使用asp.net抓网页源代码时,遇到了一个小小的困扰,那就是我在请求header里添加了GZip的内容编码后,一直返回乱码的问题。不过最终还是把这个小问题给解决了,现在记录一下。 asp.net使用gzip抓取网页 普遍情况下,asp.net抓取网页源码时并不使用gzip,而是直接抓。关键代码如下: string PageUrl = "http://www.webkaka.com/"; WebRequest request = WebRequest.Create(PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); Encoding enc = Encoding.GetEncoding("GB2312"); StreamReader sr = new StreamReader(resStream, enc); string strHtml = sr.ReadToEnd(); resStream.Close(); sr.Close(); 在请求header里添加了GZip的内容编码: string PageUrl = "http://www.webkaka.com/"; WebRequest request = WebRequest.Create(PageUrl); request.Headers.Add("Accept-Encoding", "gzip,deflate"); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); Encoding enc = Encoding.GetEncoding("GB2312"); StreamReader sr = new StreamReader(resStream, enc); string strHtml = sr.ReadToEnd(); resStream.Close(); sr.Close(); 但是,这样的代码,获得的网页源代码是乱码的,确切来说,是经过了GZip压缩的字符串,因此必须要进一步处理,把这些乱码还原成可读的html代码。 最终实现代码如下: string PageUrl = "http://www.webkaka.com/"; WebRequest request = WebRequest.Create(PageUrl); request.Headers.Add("Accept-Encoding", "gzip,deflate"); request.AutomaticDecompression = DecompressionMethods.GZip; WebResponse response = […]

龙生   17 Jul 2016
View Details

c# 实现网页上用户自动登陆|asp.net 模拟网站登录

using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO; namespace Czt.Web { /// <summary> /// 实现网站登录类 /// </summary> public class Post { /// <summary> /// 网站Cookies /// </summary> private string _cookieHeader = string.Empty; public string CookieHeader { get { return _cookieHeader; } set { _cookieHeader = value; } } /// <summary> /// 网站编码 /// </summary> private string _code = string.Empty; public string Code { get { return _code; } set { _code = value; } } private string _pageContent = string.Empty; public string PageContent { get { […]

龙生   17 Jul 2016
View Details

VS2015 +EF6 连接MYSQL数据库生成实体

使用EF设计器 此时此刻,发现二逼了,咋没有MySQL Database呢? 好吧,下面重点: 需要下载安装: 1:mysql-for-visualstudio-1.2.6.msi http://dev.mysql.com/downloads/file/?id=460645 2:mysql-connector-net-6.9.8.msi http://dev.mysql.com/downloads/connector/net/ 3:使用Nuget安装EF   我这边是已经安装完了(版本选择6.1以上的),所以显示“更新”和“卸载”,如果你安装了,继续看下面的   下图是随便找了一个没安装的,就会有“安装”按钮,   4:使用Nuget安装Mysql.Data.Entity 与安装EF相同 点击安装后,一会会出现如下图:     执行完上述步骤,看web.config文件,会自动增加如下代码 OK,现在我们所有的步骤就执行完了。最好重启下VS(不知道是不是必须,反正我重启了),之后重新编译。 再之后,就可以按开始的步骤生成MYSQL对应的实体了。 注:如果刚开始那两个MSI文件安装有问题,则生成实体的时候,到了这一步之后(如下图),会出现闪退问题,无法生成实体   (本人就遇到过这个问题) 到了这一步,已经没有任何悬念了。   来自为知笔记(Wiz) from:http://www.cnblogs.com/RushPasser/p/5438334.html

龙生   14 Jul 2016
View Details

说说C#的async和await

C# 5.0中引入了async 和 await。这两个关键字可以让你更方便的写出异步代码。 看个例子: public class MyClass {     public MyClass()     {         DisplayValue(); //这里不会阻塞         System.Diagnostics.Debug.WriteLine("MyClass() End.");     }     public Task<double> GetValueAsync(double num1, double num2)     {         return Task.Run(() =>         {             for (int i = 0; i < 1000000; i++)             {                 num1 = num1 / num2;             }             return num1;         });     }     public async void DisplayValue()     {         double result = await GetValueAsync(1234.5, 1.01);//此处会开新线程处理GetValueAsync任务,然后方法马上返回         //这之后的所有代码都会被封装成委托,在GetValueAsync任务完成时调用         System.Diagnostics.Debug.WriteLine("Value is : " + result);     } } 上面在MyClass的构造函数里调用了async关键字标记的异步方法DisplayValue(),DisplayValue()方法里执行了一个await关键字标记的异步任务GetValueAsync(),这个异步任务必须是以Task或者Task<TResult>作为返回值的,而我们也看到,异步任务执行完成时实际返回的类型是void或者TResult,DisplayValue()方法里await GetValueAsync()之后的所有代码都会在异步任务完成时才会执行。 DisplayValue()方法实际执行的代码如下: public void DisplayValue() {     System.Runtime.CompilerServices.TaskAwaiter<double> awaiter = GetValueAsync(1234.5, 1.01).GetAwaiter();     awaiter.OnCompleted(() =>         {             double result = awaiter.GetResult();             System.Diagnostics.Debug.WriteLine("Value is : " + result);         }); } 可以看到,async和await关键字只是把上面的代码变得更简单易懂而已。 程序的输出如下: MyClass() End. Value is : 2.47032822920623E-322 以下是我写的一个静态类,可以方便将一个普通Function执行异步调用: public static class TaskAsyncHelper {     /// <summary>     /// 将一个方法function异步运行,在执行完毕时执行回调callback     /// </summary>     /// <param name="function">异步方法,该方法没有参数,返回类型必须是void</param>     /// <param name="callback">异步方法执行完毕时执行的回调方法,该方法没有参数,返回类型必须是void</param>     public static async void RunAsync(Action function, Action callback)     {         Func<System.Threading.Tasks.Task> taskFunc = () =>         {             return System.Threading.Tasks.Task.Run(() =>             {                 function();             });         };         await taskFunc();         if (callback != null)             callback();     }     /// <summary>     /// 将一个方法function异步运行,在执行完毕时执行回调callback     /// </summary>     /// <typeparam name="TResult">异步方法的返回类型</typeparam>     /// <param name="function">异步方法,该方法没有参数,返回类型必须是TResult</param>     /// <param name="callback">异步方法执行完毕时执行的回调方法,该方法参数为TResult,返回类型必须是void</param>     public static async void RunAsync<TResult>(Func<TResult> function, Action<TResult> callback)     {         Func<System.Threading.Tasks.Task<TResult>> taskFunc = ()=>             {                 return System.Threading.Tasks.Task.Run(()=>                     {                         return function();                     });             };         TResult rlt = await taskFunc();         if(callback != null)             callback(rlt); […]

龙生   07 Jul 2016
View Details

C#:GDI+图像扭曲

DrawImage 时按照目标形状给定矩形框大小即可,下面是MSDN上的代码: Bitmap myBitmap = new Bitmap("Spiral.png"); Rectangle expansionRectangle = new Rectangle(135, 10, myBitmap.Width, myBitmap.Height); Rectangle compressionRectangle = new Rectangle(300, 10, myBitmap.Width / 2, myBitmap.Height / 2); myGraphics.DrawImage(myBitmap, 10, 10); myGraphics.DrawImage(myBitmap, expansionRectangle); myGraphics.DrawImage(myBitmap, compressionRectangle);       以上图形转换的代码如下,经测试通过,参考了CxImage的源码:     static int ComputePixel(float x, float y, out float x1, out float y1) { double r, nn; if (x == 0 && y == 0) { x1 = x; y1 = y; return 1; } nn = Math.Sqrt(x * x + y * y); r = (Math.Abs(x) > Math.Abs(y)) […]

龙生   08 Jun 2016
View Details

C# :GDI+技术生成复杂型彩色验证码(转载)

该类是生成一个验证码的类,集合了网上大部分的C#关于GDI+的文章进行多次改进,现在已经形成了可在生产环节中使用的验证码。 该验证码加入了背景噪点,背景噪点曲线和直线,背景噪点文字以及扭曲,调暗,模糊等。完全可以实现防识别。 对安全性要求比较高的网站尤其适用。 同时该类还还收集了GDI+的图像处理方面的函数,包括雾化,扭曲,水波,锐化,高斯模糊,画直线,画曲线生成随机颜色,缩放图片,柔化图片,图片黑白化,增加曝光度,RGB滤镜,绘制圆角等功能。

from:http://www.cnblogs.com/Fooo/p/3576800.html

龙生   08 Jun 2016
View Details

C# GDI+绘图高级编程

龙生   08 Jun 2016
View Details

C#GDI+图像处理

支持格式:BMP、GIF、JPEG、EXIF、PNG、TIFF、ICON、WMF、EMF等,几乎涵盖所有常用格式 图像类: Image类:Bitmap和Metafile的类提供功能的抽象基类。 Metafile类:定义图形图元文件,图元文件包含描述一系列图形操作的记录,这些操作可以被记录(构造)和被回放(显示) Bitmap类:封装GDI+位图,此位图由图形图像及其属性的像素数据组成,Bitmap是用于处理由像素数据定义的图像的对象。 常用属性以及方法: 名称 说明 公共属性 Height 获取此Image对象的高度。 RawFormat 获取此Image对象的格式。 Size 获取此Image对象的宽度和高度。 Width 获取此Image对象的宽度。 公共方法 GetPixel 获取此Bitmap中指定像素的颜色。 MakeTransparent 使默认的透明颜色对此Bitmap透明。 RotateFlip 旋转、翻转或者同事旋转和翻转Image对象。 Save 将Image对象以指定的格式保存到指定的Stream对象。 SetPixel 设置Bitmap对象中指定像素的颜色。 SetPropertyItem 将指定的属性项设置为指定的值。 SetResolution 设置此Bitmap的分辨率。 构造BitMap实例: public Bitmap(Image ); //从现有图像创建,其中可换成等效参数 public Bitmap(int, int); public Bitmap(Image, bool );//bool:颜色校正标志位 public Bitmap(Type , string );//type提取资源的类, string 资源名 public Bitmap(int , int , PixelFormat );// PixelFormat像素格式 枚举 public Bitmap(int , int , Graphics);// Graphics设置分辨率 public Bitmap(int , int , int stride, PixelFormat , IntPtr );// stride 指定相邻扫描行开始处之间字节偏移量的整数。传递给此参数的值必须为4 的倍数。IntPtr指向包含像素数据的字节数组的指针。 PixelFormat枚举: 名称 说明 DontCare = 0 没有指定像素格式 […]

龙生   07 Jun 2016
View Details
1 20 21 22 44