随笔分类 - .net
摘要:在多线程中使用Queue,发现总是有莫名的问题, 经折腾好久之后发现是因为没有加锁! 以下测试代码中, 如果不加锁, 添加 100W对象, 可能只会成功50W, 然后并不会产生异常!
阅读全文
摘要:using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using System.Net; using System.N...
阅读全文
摘要:.Net /// <summary> /// 获取汉字字符串的首拼音字母字符串 /// </summary> /// <param name="text">需要转换的字符串</param> /// <param name="halfChar">半角字符替换符(*不替换)</param> /// <p
阅读全文
摘要:要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就是Fluent API,通过新增相应的配置类来覆盖默认配置。现在我们用这两个来对比了解EF中的约定配
阅读全文
摘要:1.Lambda Invoke(new Action<object>(o=>{/*方法体*/}));2.Debug&Track .Assert(), .WriteLine()+DbgView3.HashTable之类键值集合,直接使用 coll.Values 遍历4.Socket服务器主动侦测掉线 Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); int keepAlive = -1744830460; // SIO_KEEPALIVE_V
阅读全文
摘要:很久以前找的打包工具了,优点: 轻量级工具,易上手.支持Pascal脚本,定制性比较强.比较符合C#语程序打包.使用:网上资料较多,不详述了.另帮助文档为中文,可以参考帮助.涉及以下三个工具:1.InnoIDE2.InnoSetup3.InnoSetupUnpacker-------------------------------------检测.net framework 2.0 并提示安装脚本[code] function InitializeSetup: Boolean; var Path:string ; ResultCode: Integer; beg...
阅读全文
摘要:在多台服务器(XP&2003)上测试客户端socket连接数最大到2000左右后,之后的连接就一直失败抛出连接异常: 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作 因为在socket.ConnectAsync中报错,最初把问题定位到代码上,经多次查看未果. 后来发现连接数上不去的时候,IE网页也打不开,遂想到可能是操作系统的连接数限制,经拉谷歌搜后得到如下解决方案: 1.修改注册表以设置系统最大可用端口数量(win7中已设置) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters...
阅读全文
摘要:项目中用到了多线程,而且是1000线程并发运行,发现内存占用过高,于是对项目里用到的对象逐个测试,发现是线程对象占用内存 Thread[] threads = new Thread[1000]; for(int i = 0; i<threads.Length; i++) { (threads[i] = new Thread(new ThreadStart(delegate() { Thread.Sleep(100000); ...
阅读全文
摘要:要求在.Net端生成公钥私钥对。然后在.Net端使用RSA公钥加密;在Linux端使用RSA私钥解密。最初的尝试是:.Net端使用RSACryptoServiceProvider; Linux端使用OpenSSL搞了整整5个小时,有木有啊,有木有啊! .Net的RSA和OpenSSL对不上,有木有啊,有木有啊!人都搞晕了就是对不上。最后解决方式换成了,.Net端使用 OpenSSL.Net..Net端代码string publicKeyFile = context.Server.MapPath("~/App_Data/public.pem"); using( RSA rsa
阅读全文
摘要:-----------------------------物理层:HUB,网线链路层:MAC,ARP,交换机网络层:IP,ICMP,IGMP,路由器传输层:TCP,UDP会话层:HTTP,SMTP,FTP,POP3表示层:SOAP,SSL应用层:WebService的Method-------------------------------Socket是对网络层操作TcpClient是对传输层操作ASP.NET是对会话层操作=================================如果用Socket访问IIS,要做如下考虑:网络层:使用什么网络层协议,如IPV4还是IPV6;如果开发路
阅读全文
摘要:被一个神奇的问题折腾到现在. 神奇的问题如下: 程序:使用API的CreateProcess打开程序,然后用DLL注入该进程,实现多开. 环境:Win7 x64, VS2008, .NetReactor(混淆加密). 神奇的过程 : 1.使用DEBUG版本一切正常 2.使用Release版本死活都不行 3.把Release版本丢到2003的机器上貌似有效,没仔细测试. 3.还原今天写的代码重新生成, 依旧Debug正常,Release无效. 4.找出以前的混淆加密版本有效. 找出以前的Release版本无效. 5.对最新的Release版本混淆加...
阅读全文
摘要:1.用RSACryptoServiceProvider签名验签, 私钥加密,公钥验证RSACryptoServiceProvider 1 //生成公钥私钥对 2 byte[] messagebytes = Encoding.UTF8.GetBytes("luo罗"); 3 RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider(); 4 string privatekey = oRSA.ToXmlString(true); 5 string publickey = oRSA.ToXmlString(false
阅读全文
摘要:作者语: 在一位园友的文章中下载了C#读取托盘栏源码,DOWN下来之后发现在Windows 7 X64中显示不出来.顺着代码查找,怀疑TBUTTON的结构体在32位和64位系统下定义有所不同,于是搜索X64的TBUTTON定义, 于是搜索到了以下这篇文章, 根据文章中定义的结构体修改源码中的STRUCT定义, 执行成功. 这篇文章写的很细, 转过来以供参考.---------------------------------------------------------------------------------------------InPart 2of this series I de
阅读全文
摘要:USE database1 SELECT 表名 = CASE a.colorder WHEN 1 THEN c.name ELSE '' END, 序 = a.colorder, 字段名 = a.name, 标识 = CASE COLUMNPROPERTY(a.id,a.name,'IsIdentity') WHEN 1 THEN '√' ELSE '' END, 主键 = ...
阅读全文
摘要:什么是公共语言运行时 (CLR)?公共语言运行时是 .NET 框架应用程序的执行引擎。 它提供许多服务,包括:代码管理(加载和执行),应用程序内存隔离,类型安全验证,IL 到本机代码的转换,元数据(增强的类型信息)访问,为托管对象管理内存,强制代码访问安全,异常处理,包括跨语言异常,托管代码、COM 对象和现有 DLL(非托管代码和数据)之间的互操作,自动进行对象布局,对开发人员服务(配置、调试等...
阅读全文
摘要:1. 读取读取好像有几种方式,通过ADO.net, 通过Microsoft.Interop.Excel支持类库用调用COM读取,还有通过ZIP解压最终读取DOM(这个貌似蛮复杂)这里我用的ADO.NET只介绍这一个。[代码]参数: StrExcelPath Excel文件的路径,strSheetName 要读取表的名称这里贴个读SheetName的代码,这个是调用Microsoft.Interop...
阅读全文
摘要:项目中需要从数据库读取image流, 为MP3文件二进制.需要直接播放.经过查找 试用以下方法:1. 使用winmm.dll中的sndPlaySoundA方法, 此方法可直接播放二进制数组, 但只能播放波形文件.//声明 [DllImport("winmm.dll")] private static extern int sndPlaySoundA(byte[] lpszSoundName, in...
阅读全文
摘要:在采用富文本框添加信息时, 如果直接用复制粘贴时,如果没的复制完整或是其它的情况,有可能会导致html标签不配对, 如没有</table>,<div>等一些标签,当把这些信息直接在显示在页面中时, 如果页面同样使用了原信息中不配对的标签,则可能会导致页面混乱,故写此方法来检查标签配对是否完整,并自动补充未配对的标签.[代码]1. checkTags 是要检查的标签,列在其中...
阅读全文
浙公网安备 33010602011771号