eaglet

本博专注于基于微软技术的搜索相关技术
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  操作系统

摘要:目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能分布式应用所必需的。为此我结合多年的底层开发经验开发了一个.net 下的高效TCP消息发送组件。这个组件在异步发送时可以达到每秒160万包,而相同大小的数据包用WCF的TCP模式OneWay 方式发送每秒只能达到5.6万包。 阅读全文

posted @ 2013-01-07 12:54 eaglet 阅读(5928) 评论(72) 推荐(18) 编辑

摘要:我所做的系统需要比较文件时间和大小来确定两个文件是否相同,但在运行过程中,经常会发现文件时间被莫名其妙的修改了1-2秒。这个问题我一直没有仔细去研究,一直以为是微软的一个bug,直到最近发现这个问题不搞清楚实在是不行了,系统经常会从服务器下载相同的文件。今天仔细研究了一下这个问题,发现并不是微软操作系统的问题,而是文件系统设计的问题。 阅读全文

posted @ 2012-10-12 12:55 eaglet 阅读(22152) 评论(4) 推荐(4) 编辑

摘要:写文件后调用 FileStream.Close; FileStream.Flush; 或者 using (FileStream fs = new FileStream(…)) {} ,文件是否被实际写入了磁盘?可能大多数人都会说肯定会写入磁盘,但我要告诉你,不一定! 阅读全文

posted @ 2012-09-13 10:48 eaglet 阅读(10320) 评论(24) 推荐(20) 编辑

摘要:.net 框架中提供的 System.Environment.GetFolderPath 只能获取当前用户的特殊目录,无法获取所有用户的特殊目录。我做了一个类,可以帮助获取所有用户的特殊目录。网上有很多相关的文章用的API是有些过时了,这篇文章中的API可以适用于windows 2000 后的任何操作系统。 阅读全文

posted @ 2012-05-23 14:39 eaglet 阅读(3194) 评论(1) 推荐(2) 编辑

摘要:.net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个机制会大大影响网络应用程序性能,本文讲述如何修改这个并发连接限制。 阅读全文

posted @ 2012-05-18 08:54 eaglet 阅读(15932) 评论(5) 推荐(4) 编辑

摘要:C# 程序重启计算机的方法很多,网上也有不少这方面的文章,不过很多网上提供的方法在某些情况下无法获取重启计算机的权限导致重启失败。本文对这些方法做一些简单的讨论。 阅读全文

posted @ 2012-04-13 13:54 eaglet 阅读(13057) 评论(11) 推荐(6) 编辑

摘要:本文详细阐述 windows 操作系统的启动顺序,以方便IT从业者对windows 启动问题的分析和解决。 阅读全文

posted @ 2012-02-14 10:22 eaglet 阅读(4606) 评论(3) 推荐(8) 编辑

摘要:要实现多台机器共享上网通常有两种方法,一种是通过路由器共享上网,一种是通过软网关共享上网。在某些情况下,比如要通过3G,或4G无线网卡共享上网,我们需要特殊的3G或4G无线路由器才能共享,在没有这种路由器的情况下,我们只能通过软件共享上网。windows 7 提供了这样的共享功能,而且配置非常简单。 阅读全文

posted @ 2011-11-01 09:41 eaglet 阅读(5145) 评论(0) 推荐(0) 编辑

摘要:IIS7 与 IIS 6 相比有了很大的改动,原来在 IIS 6 下可以的设置到了 IIS 7 下有的会发生变化。身份模拟的配置上,IIS7 和 IIS6有很大不同,网上IIS6的身份模拟的文章比较多,但介绍IIS7的比较少,我把的一些折腾的经验在这篇博客中写下来,以供参考。 阅读全文

posted @ 2011-10-25 07:48 eaglet 阅读(8740) 评论(5) 推荐(2) 编辑

摘要:本文简单介绍了windows server 2008 下IIS7.5 配置 FTP Passive 的方法 阅读全文

posted @ 2011-10-24 08:38 eaglet 阅读(12630) 评论(1) 推荐(0) 编辑

摘要:在嵌入式应用和一些安全软件中经常需要不通过物理键盘输入,虽然微软提供了也一个软键盘,但这个软件盘不能定制界面不能自动感应当前光标是否处于输入状态,所以有时候我们还是需要自己来实现这个软键盘。本文将讲解自己实现软键盘时涉及到的几个关键技术。 阅读全文

posted @ 2011-05-20 06:28 eaglet 阅读(7113) 评论(17) 推荐(7) 编辑

摘要:Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 以 as administrator 方式运行,那么我们怎么来实现这样的功能呢? 阅读全文

posted @ 2011-04-22 08:34 eaglet 阅读(26471) 评论(18) 推荐(5) 编辑

摘要:用 Win7 一年多了,一直在这个环境下编程,其他都挺好,就是有个问题非常恶心,在VS下编译经常出现进程正在使用,无法覆盖的错误,这个问题我记得博问中以前也有其他人遇到过,也没有解决掉。此问题困扰了我一年,期间我查了很多中英文资料都没有得到理想的答案。今天实在忍无可忍,又去狗了一下,可能关键字输入不一样吧,这次终于狗出来了,困扰一年的问题终于解决了。写此文希望能帮助和我一样正在为此问题抓狂的同仁。 阅读全文

posted @ 2011-02-12 10:19 eaglet 阅读(12248) 评论(46) 推荐(16) 编辑

摘要:在做Socket 编程时,我们经常会要问,单机最多可以建立多少个 TCP 连接,本文将介绍如何调整系统参数来调整单机的最大TCP连接数。 Windows 下单机的TCP连接数有多个参数共同决定,下面一一介绍: 阅读全文

posted @ 2010-09-21 08:40 eaglet 阅读(61861) 评论(13) 推荐(14) 编辑

摘要:如果你的程序希望在不同语言的操作系统上平滑移植,你必须要正确理解和设置区域性信息(CultureInfo),这个问题对于习惯了中文windows 操作系统的我们来说,往往非常容易忽略。一旦忽略这个问题,我们在中文windows操作系统下运行正常的程序跑在英文或者其他语言的操作系统上,比如台湾或香港版本的windows下,轻则显示不对,重则逻辑错误。下面就谈谈这个区域性信息对程序移植性的影响 阅读全文

posted @ 2010-06-08 09:19 eaglet 阅读(3948) 评论(16) 推荐(8) 编辑

摘要:昨天,公司的美国客户发邮件给我,说我的软件出问题了,我查来查去,发现居然是服务器上一个目录无法删除,一删除就报 cannot read from the source file or disk. 如果用命令行方式删除,则报 cannot find the specified path。一开始以为是文件系统遭破坏了,用 chkdsk 命令检查,没有发现问题,后来仔细一看,那个不能删除的目录名居然以一个空格字符结尾,而我尝试在资源管理器中创建一个目录以空格结尾结果资源管理器会自动将末尾的字符删除,用程序创建,结果也一样,这个美国佬是怎么创建这个古怪的目录的?出现这种情况后不但是无法删除这么简单,列目录什么的也会有问题,这样一来,系统的运行都会有问题,我想到的最坏结果就是可能不得不格式化服务器的硬盘,想到这里我几乎不敢再想下去了!Research了一天,后来终于找到了解决方案,并且由此还发现问题的起因是我程序上的一个Bug造成,可怕的Bug! 阅读全文

posted @ 2010-05-21 10:18 eaglet 阅读(8395) 评论(54) 推荐(48) 编辑

摘要:项目中需要通过程序获取和设置时区,在网上搜了半天,这方面的资料很少,中文几乎没有完整的方案,只是有人提到用下面两个API,具体怎么用,没有找到完整的例子。英文资料也很少,找到一个,思路没问题,但代码有很大问题。只能自己研究实现,下面我就具体说说我是怎么做的。 阅读全文

posted @ 2010-04-29 14:38 eaglet 阅读(6654) 评论(2) 推荐(2) 编辑

摘要:2008 年我写过一篇博客叫 《让.Net 应用程序突破2G的内存访问限制》这篇博客主要讲述了如何在32位操作系统下利用AWE 扩展访问超过2G的内存。AWE方式虽然可以访问超过2G的内存,但其本身也有一些问题,首先必须要锁定内存,其次需要自己写内存管理程序来管理这些内存,.net framework 无法在AWE 扩展的内存中创建托管堆。其实很多应用只是想申请比2G稍多一些的内存,最简单的方法还是采用/3GB开关来实现。本文将讲述如何利用 /3GB开关来让32位操作系统下.net 应用程序申请超过2GB的内存。 阅读全文

posted @ 2010-01-20 09:24 eaglet 阅读(6265) 评论(20) 推荐(2) 编辑

摘要: .Net 提供了一个NetworkStream 用于TCP 的读写,实际使用时发现直接操作效率很低,哪怕把TCP 的发送缓存和接受缓存设置很大也没有太大提高。后来在对 NetworkStream 读写前设置了缓存,性能一下子提高了很多。 阅读全文

posted @ 2009-11-04 13:01 eaglet 阅读(8886) 评论(16) 推荐(2) 编辑

摘要: .Net 下的程序调试相对C/C++要简单很多,少了那些令人头疼的指针越界的问题。不过当你的程序遇到如下问题时,依然非常棘手: 1. 进程异常终止。 2. 内存泄漏或者内存申请后程序始终没有释放。 3. 线程因未知原因挂起,比如死锁。 4. 程序死循环。 本文将阐述如果编写程序对后两者故障实时跟踪并报告。 阅读全文

posted @ 2009-03-12 13:00 eaglet 阅读(9865) 评论(3) 推荐(4) 编辑