自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Web Debug

IIS, ASP.NET, IE Debugging Technique

  • 博客(27)
  • 收藏
  • 关注

原创 另一种形式的OufOfMemoryException

内存中空闲空间不少,但是连续的空闲空间却只有100k。0:000> !address -summary--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal                              6853          4

2012-12-11 11:19:39 1008

原创 常用的命令行

powershell命令,用来查找大于500MB的文件get-childitem . -recurse | where-object {$_.Length -gt 500MB}查看本地打开的Http连接netstat -a |find /I "http"清除IE CacheRunDll32.exe InetCpl.cpl,ClearMyTracksByPro

2012-12-03 14:00:09 578

原创 IE连接设置问题

IE连接设置代理有三种方式自动检测设置自动配置脚本手动指定代理服务器这三种设置是按照从上到下的顺序被采用的,换句话说如果自动检测设置可以工作,自动配置脚本就不会起作用,自动配置脚本工作,手动服务器就不会起作用。设置过程中经常遇到的问题有以下几种自动设置脚本内容在服务器更新了,但是客户端还是用旧的自动设置链接在服务器更新了,客户端还是通过旧的地

2012-11-20 15:02:05 4113 2

原创 Session丢失问题调试

有时候发现IIS网站经常session丢失,用户被迫重新登陆网站。造成这个问题的原因可能有这么几种session timeout过短应用程序池回收程序调用主动关闭sessionSession timeout首先要确定这个网站是asp还是asp.net网站,IIS对于ASP和ASP.net的session配置在不同的地方。对于ASP网站,session的控制在IIS

2012-11-13 15:01:01 1801

原创 IE插件加载问题调试

IE插件常见加载问题IE安全设置不允许插件没有正确安装插件没有足够权限访问资源64位IEIE Active X插件相关设置http://technet.microsoft.com/en-us/library/dd346862.aspxhttp://support.microsoft.com/kb/182569?wa=wsignin1.0http://window

2012-11-13 14:30:03 8599

原创 C#实现的自定义IIS认证模块

IIS7以后application pool都支持两种模式:经典模式和集成模式。所谓经典模式就是与IIS6的application pool运行模式相同,对于asp.net的页面请求处理由单独的asp.net filter完成。集成模式是IIS7及以上的默认模式,对于各种请求的处理均在一条流水线上由不同的模块完成。由于IIS7与.NET的完美结合使很多原本在IIS6中比较麻烦的

2012-11-06 22:12:46 2686

原创 Working Set, Paged Pool and Non-paged pool

Working SetThe working set of a process is the set of pages in the virtual address space of the process that are currently resident in physical memory. The working set contains only pageable memory

2012-11-06 21:39:21 2812

原创 .NET线程同步问题的调试方法

问题介绍.NET中线程同步经常用到以下方式,lock statementAutoResetEvent/MannualResetEventMutexSemaphoreReaderWriterLockInterlocked线程同步经常遇到的问题有以下几种,等待 - 等待锁释放死锁 - 请求锁资源顺序不一致而造成互锁

2012-10-25 13:57:10 2407 1

原创 Http 403错误重现实验及解决方法

问题介绍403是Web服务器返回的一种非常常见的错误代码,Http协议中对403错误定义如下,403 ForbiddenThe server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated.

2012-10-21 22:51:50 86941 1

原创 一个简单的网络爬虫 - SharkCrawler

最近需要通过网络爬虫来收集点数据,想找一些简单易用的开源版本,总是要么配置起来有点复杂,要么功能上不太容易扩展。还是自己实现一个简单的版本更容易扩展相应的功能。这个版本的实现完全参照wiki上面对于webcrawler的架构来设计类型。实现了一些简单的功能从指定起始地址爬链接,结果以htm形式存在本地文件系统执行目标输出路径和工作线程数暂定和恢复爬行跟踪爬行请求以及出错请求由于

2012-10-21 17:55:54 1961 1

原创 C#实现的知识搜索工具 - KBCruiser

平时通过搜索引擎去搜答案,总是觉得有些地方用起来不顺手,总结一下有这么几点搜索引擎范围太宽,有的时候只想在官方文档和论坛里面找答案并非所有的论坛内容和博客内容都被搜索引擎索引点开的链接发现不是想要的内容,需要关掉当前窗口回到搜索页面继续找点开链接没有关键字高亮于是自己动手写了个知识搜索的客户端小工具,原理就是向不同的官方网站相应的搜索引擎发送请求,分析显示返回结果,同时在浏览器中实现关

2012-10-19 22:47:36 1066

原创 C++手动加载CLR运行托管程序(CLR Hosting)

机制介绍有些时候主程序是通过C/C++实现的,但是我们希望通过托管代码来扩展非托管程序,从而也获得托管代码带来的一系列优点。比如开发效率高,自动垃圾回收等。运行托管与非托管代码根本区别在于托管代码是进程首先加载CLR然后通过CLR运行托管程序,而非托管代码则是操作系统直接根据其PE Header加载程序分配内存从而运行。因此如果需要通过托管代码来扩展非托管程序,首先要加载CLR来使非托

2012-10-14 14:18:32 5488 1

原创 Kerberos认证问题的调试试验

Kerberos作为一种windows推荐的集成认证方式被广泛的应用,也有很多文章介绍Kerberos认证方式,这里通过一个Kerberos认证问题的调试试验来介绍一下Kerberos的认证流程以及相关的调试工具和方法。Kerberos认证流程总的来说Kerberos是通过统一的认证服务器来对客户端进行认证,认证成功后客户端才能取得访问真正服务器的凭据。所以认证流程中涉及了三个方面如下图所

2012-10-10 00:08:56 5879

原创 ASP.NET未处理异常(Unhandled Exception)调试试验

问题介绍网站运行的时候是否遇到过未处理异常(unhandled exception)造成网站进程退出报503(service unavailable)错误?但是也有时未处理异常仅仅是在页面上显示出错信息,网站进程还在照常运行。为什么同样发生了异常,结果却截然不同?这种问题该如何调试?这片文章通过调试试验来揭开这些问题的答案。第一种情况ASP.NET网站运

2012-10-06 22:41:40 28940

原创 Http 401错误重现实验及解决办法

根据http协议对状态码的定义,401代表未经授权的访问。在IIS中在401的基础上定义了一系列的子状态码来代表各种不同情况下未经授权访问的具体原因。401.1 - Logon failed. -登陆失败401.2 - Logon failed due to server configuration.-基于服务器配置的登陆失败401.3 - Unauthorized due to

2012-10-06 11:09:57 141359

原创 HttpException "Request timed out"的发生原因及调试方法

问题简介在ASP.NET程序中我们经常遇到错误消息为"Request Timed Out"的HttpException,浏览器中的出错信息如下图所示,同时应用程序日志中也会出现一条警告消息如下如何重现这种异常?线程在处理逻辑的过程中是如何被打断而抛出超时异常?如何调试这种异常? 这篇文章我们从CLR源代码级别来分析一下该问题发生的原因以及

2012-10-04 21:17:59 26383

原创 Windows同步机制原理及使用方法

同步对于计算机系统来说是一个必须要面对的问题, windows系统对内核或外部应用程序提供了多种同步机制,通过这篇文章来介绍同步机制的工作机制同步机制的使用方法同步机制可以按照不同的方式分类,如按照IRQL的高低,按照内核模式还是用户模式,按照是否可以跨进程等。在这里我们按照是否升高IRQL来将同步机制分类。 高IRQL同步系统提供的同步机制必须要保证一点,就是在任意时

2012-10-04 14:33:37 6245

原创 关于.NET垃圾回收(GC)的基本问题

在.Net应用程序中很多问题都是没有正确的理解垃圾回收的工作原理而导致的,这里有一些关于GC的基本问题,如果看到问题答案心里都有数,那就请略过这篇,不然就一起来复习下吧。什么是代?什么时候发生垃圾回收?什么是大对象堆?什么是root?什么是finalizer?什么是finalizequeue?什么情况下会发生out ofmemory exception?什么情况下要实现IDisposibl

2012-09-30 15:36:19 5772 1

原创 调试.NET Web应用程序High CPU

如果Web应用程序经常遇到的问题按频率排名的话,我觉得 第一名unhandled exception第二名high memory第三名high cpu 这篇文章介绍web应用程序中cpu使用率过高问题相应的数据收集方式和调试问题的方法。 对ASP.NET Web应用程序CPU使用率过高的问题,从宏观上分分类,大概就这么几种情况,大量请求 过多循环 GC频繁 数据收集

2012-09-29 23:42:28 3961

原创 追踪ASP.NET请求性能瓶颈

有时候我们需要研究某些特定IIS Web请求在服务器端究竟慢在哪里。通过以下方式我们可以定位到真正的api级别性能热点(hot spot)。 Failed Request Tracing (FREB) 首先我们先启用用IIS 7内建的请求监测机制来监测我们需要测试的请求,failed request tracing (FREB)。 如何启用freb可以参考这个链

2012-09-27 21:01:18 7941

原创 Windows异常分发 - First Chance Exception vs Second Chance Exception

通过visualstudio运行程序,经常会在output里面看到类似的输出,A first chanceexception of type 'System.DivideByZeroException' occurred in xxx.dll我们的问题什么是first chance exception?什么是second chance exception?

2012-09-27 16:32:03 4036

原创 Http 400错误重现实验及解决办法

问题简介每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误。 目前400错误经常出现在用户认证阶段,当一个用户从属于过多的域时,在Kerberos认证阶段会将域信息发送给服务器,从而导致请求字段长度超过服务器设置的上限。 问题重现更改注册表HKEY_LOCAL_MACHINE\SYSTEM\Curren

2012-09-26 22:44:46 325458 3

原创 调试.NET Web应用程序High Memory - Part 2

在第二部分我们主要介绍针对各种内存问题的主要调试方式。在开始之前我还是推荐一个常规的调试步骤。 Part1我们提到过debugdiag工具以及如何通过其内建的rule来分析dump。 收集dump通过DebugDiag选择Managed Memory Analysis规则来做一遍分析根据DebugDiag分析报告通过windbg打开dump查看更多信息 大数据量da

2012-09-23 22:40:03 2209

原创 Windows内核调试实验方法

如果需要通过实验来了解windows操作系统,免不了要进行内核调试,这边文章把一些内核调试途径和方法罗列下。  实验环境 Windows 8 Enterprise+ Hypher V VM - 2003 SP2VM - 2008 R2 工具使用实验用到的工具主要是调试工具windbg,进行内核级的调试,如何向查看系统内核的情况,一般有四种方式, Wind

2012-09-23 17:06:56 4012

原创 IIS Web应用程序调试的基本问题和工具

应用程序调试,需要有个常规的调试思路,应对各类问题最基本的调试手段是什么,不能一头雾水的上手而乱了阵脚,而且根据经验统计这些基本的步骤可以解决大多数的问题。 问题分类 第一种,应用程序不工作了。第二种,应用程序反应很慢。对于这样简单的描述我们一般需要进一步了解更多信息,比如问题最直接的表现是什么?  浏览器显示网页报错信息

2012-09-23 12:18:23 4993

原创 调试.NET Web应用程序High Memory - Part 1

最近遇到.NET Web应用程序内存使用的各种问题,总结一些具体的现象和调试方法。常见的不正确的内存使用造成高内存使用量主要原因有以下这么几种,问题分类大数据量DataTable大多数web应用程序都会用到DataTable,DataTable中会有很多的Cell来存储表格中的数据,一旦表格中有过多的列便会导致内存使用量的急剧上升,如果不能够得到及时释放,内存就会被大量的表格数

2012-09-23 11:45:31 1699

原创 调试.NET程序OutOfMemoryException

问题简介 Out of memory异常是如何产生的 总的来说OutOfMemoryException会在两种情况下发生,进程虚拟内存空间耗尽系统物理内存耗尽第二种情况我们可以参照系统进程管理器中性能选项卡,如果其中committed数值接近了limit,那说明第二种情况发生了。 不过大多数时候OutOfMemoryException发生是因为第

2012-09-23 09:52:28 7987 1

空空如也

空空如也

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

TA关注的人

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