IIS/ASP.NET
文章平均质量分 80
WebDebug
这个作者很懒,什么都没留下…
展开
-
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 · 141390 阅读 · 0 评论 -
Session丢失问题调试
有时候发现IIS网站经常session丢失,用户被迫重新登陆网站。造成这个问题的原因可能有这么几种session timeout过短应用程序池回收程序调用主动关闭sessionSession timeout首先要确定这个网站是asp还是asp.net网站,IIS对于ASP和ASP.net的session配置在不同的地方。对于ASP网站,session的控制在IIS原创 2012-11-13 15:01:01 · 1804 阅读 · 0 评论 -
C#实现的自定义IIS认证模块
IIS7以后application pool都支持两种模式:经典模式和集成模式。所谓经典模式就是与IIS6的application pool运行模式相同,对于asp.net的页面请求处理由单独的asp.net filter完成。集成模式是IIS7及以上的默认模式,对于各种请求的处理均在一条流水线上由不同的模块完成。由于IIS7与.NET的完美结合使很多原本在IIS6中比较麻烦的原创 2012-11-06 22:12:46 · 2688 阅读 · 0 评论 -
调试.NET Web应用程序High Memory - Part 1
最近遇到.NET Web应用程序内存使用的各种问题,总结一些具体的现象和调试方法。常见的不正确的内存使用造成高内存使用量主要原因有以下这么几种,问题分类大数据量DataTable大多数web应用程序都会用到DataTable,DataTable中会有很多的Cell来存储表格中的数据,一旦表格中有过多的列便会导致内存使用量的急剧上升,如果不能够得到及时释放,内存就会被大量的表格数原创 2012-09-23 11:45:31 · 1700 阅读 · 0 评论 -
Kerberos认证问题的调试试验
Kerberos作为一种windows推荐的集成认证方式被广泛的应用,也有很多文章介绍Kerberos认证方式,这里通过一个Kerberos认证问题的调试试验来介绍一下Kerberos的认证流程以及相关的调试工具和方法。Kerberos认证流程总的来说Kerberos是通过统一的认证服务器来对客户端进行认证,认证成功后客户端才能取得访问真正服务器的凭据。所以认证流程中涉及了三个方面如下图所原创 2012-10-10 00:08:56 · 5881 阅读 · 0 评论 -
.NET线程同步问题的调试方法
问题介绍.NET中线程同步经常用到以下方式,lock statementAutoResetEvent/MannualResetEventMutexSemaphoreReaderWriterLockInterlocked线程同步经常遇到的问题有以下几种,等待 - 等待锁释放死锁 - 请求锁资源顺序不一致而造成互锁原创 2012-10-25 13:57:10 · 2408 阅读 · 1 评论 -
IIS Web应用程序调试的基本问题和工具
应用程序调试,需要有个常规的调试思路,应对各类问题最基本的调试手段是什么,不能一头雾水的上手而乱了阵脚,而且根据经验统计这些基本的步骤可以解决大多数的问题。 问题分类 第一种,应用程序不工作了。第二种,应用程序反应很慢。对于这样简单的描述我们一般需要进一步了解更多信息,比如问题最直接的表现是什么? 浏览器显示网页报错信息原创 2012-09-23 12:18:23 · 4997 阅读 · 0 评论 -
关于.NET垃圾回收(GC)的基本问题
在.Net应用程序中很多问题都是没有正确的理解垃圾回收的工作原理而导致的,这里有一些关于GC的基本问题,如果看到问题答案心里都有数,那就请略过这篇,不然就一起来复习下吧。什么是代?什么时候发生垃圾回收?什么是大对象堆?什么是root?什么是finalizer?什么是finalizequeue?什么情况下会发生out ofmemory exception?什么情况下要实现IDisposibl原创 2012-09-30 15:36:19 · 5775 阅读 · 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 · 86951 阅读 · 1 评论 -
调试.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 · 2212 阅读 · 0 评论 -
Http 400错误重现实验及解决办法
问题简介每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误。 目前400错误经常出现在用户认证阶段,当一个用户从属于过多的域时,在Kerberos认证阶段会将域信息发送给服务器,从而导致请求字段长度超过服务器设置的上限。 问题重现更改注册表HKEY_LOCAL_MACHINE\SYSTEM\Curren原创 2012-09-26 22:44:46 · 325542 阅读 · 3 评论 -
HttpException "Request timed out"的发生原因及调试方法
问题简介在ASP.NET程序中我们经常遇到错误消息为"Request Timed Out"的HttpException,浏览器中的出错信息如下图所示,同时应用程序日志中也会出现一条警告消息如下如何重现这种异常?线程在处理逻辑的过程中是如何被打断而抛出超时异常?如何调试这种异常? 这篇文章我们从CLR源代码级别来分析一下该问题发生的原因以及原创 2012-10-04 21:17:59 · 26395 阅读 · 0 评论 -
ASP.NET未处理异常(Unhandled Exception)调试试验
问题介绍网站运行的时候是否遇到过未处理异常(unhandled exception)造成网站进程退出报503(service unavailable)错误?但是也有时未处理异常仅仅是在页面上显示出错信息,网站进程还在照常运行。为什么同样发生了异常,结果却截然不同?这种问题该如何调试?这片文章通过调试试验来揭开这些问题的答案。第一种情况ASP.NET网站运原创 2012-10-06 22:41:40 · 28944 阅读 · 0 评论 -
追踪ASP.NET请求性能瓶颈
有时候我们需要研究某些特定IIS Web请求在服务器端究竟慢在哪里。通过以下方式我们可以定位到真正的api级别性能热点(hot spot)。 Failed Request Tracing (FREB) 首先我们先启用用IIS 7内建的请求监测机制来监测我们需要测试的请求,failed request tracing (FREB)。 如何启用freb可以参考这个链原创 2012-09-27 21:01:18 · 7943 阅读 · 0 评论 -
调试.NET Web应用程序High CPU
如果Web应用程序经常遇到的问题按频率排名的话,我觉得 第一名unhandled exception第二名high memory第三名high cpu 这篇文章介绍web应用程序中cpu使用率过高问题相应的数据收集方式和调试问题的方法。 对ASP.NET Web应用程序CPU使用率过高的问题,从宏观上分分类,大概就这么几种情况,大量请求 过多循环 GC频繁 数据收集原创 2012-09-29 23:42:28 · 3966 阅读 · 0 评论 -
另一种形式的OufOfMemoryException
内存中空闲空间不少,但是连续的空闲空间却只有100k。0:000> !address -summary--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal 6853 4原创 2012-12-11 11:19:39 · 1010 阅读 · 0 评论