关于aspnet_isapi.dll的问题

aspnet_isapi.dll' 报告它自身有问题,原因如下: '检测到死锁'。

今天系统突然折了,但是问题在哪呢?很费周折。

错误信息:

ISAPI 'c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll' 报告它自身有问题,原因如下: '检测到死锁'。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

症状:系统总是不稳定,一会能用,一会儿又死掉了。

分析过程:

这个版本已经跑了很长时间,估计不是程序死锁的问题。倒底是什么问题呢。应该是外部环境的问题。由于错误信息比较的抽象,之前没有遇到过,所以google了下,但是好像遇到此问题的人很少,不过在博客园还是遇到一位受到同样遭遇的人,但是并没有一种很好的解决方案,也没有确切的指出问题的症结。所以只有自己进行一些检查。

<1>查看最近的系统更新,看是否有关于IIS之类的更新

<2>查看系统的杀毒软件的日志文件,看是否收到了攻击

但是,检查上述两个步骤,并没有发现问题。看系统是有一些更新,迫于无奈,只好重启系统试一下(也顺便重启IIS)。重启之后,问题依旧。

观察进程管理器,发现:

W3WP的线程数,一直在变化,一会增加一个高峰值,重新增加一个W3WP进程,之前的进程过一会就自动关闭,一会又恢复正常。

这说明网站,在不断的死亡、重启。到底是哪里的问题呢?应该还是系统自己的问题了。但是它自身的版本并没有问题,为了确定这一点,我也试了之前稳定的版本,同样出现此类问题。最后,是否是系统中调用的第三方服务,将整个系统给拖死了呢?

罪魁祸首:经过检查,果然是由于程序中实时调用了一个服务,由于此服务已经停止,请求无果,出现了死锁。

教训:

<1>最大大限度保证系统与第三方服务的稳定、安全,并在请求过程中做超时判断、消息分级处理。

<2>遇到问题,首先应全面分析系统的问题可能性,因为系统本身的运行环境一般都是固定不变的,出现问题的可能性很小。

有的时候在写程序的时候,如果出了问题,首先应该怀疑自己的思路、代码哪里出了问题,而不应该去怪罪IDE或者OS出了什么BUG。这样你就少走很多弯路。

时间: 2024-05-15 17:10:47

关于aspnet_isapi.dll的问题的相关文章

aspnet_isapi.dll设置图文方法.net程序实现伪静态_实用技巧

用URLRewriter控件 ①:首先要有这个文件URLRewriter.dll,如果没有,赶快到网上下载一个,并将其放到下面的bin目录里面,并且将其引用添加到下面里面;         ②:下面就是Web.Config文件的配置了,当然,配置过程相当简单:               1:先添加这个 <configSections>   <section name="RewriterConfig" type="URLRewriter.Config.Rew

w3wp进程发生死锁ISAPI aspnet_isapi.dll报告它自身有问题,原因Deadlock detected_win服务器

这个问题,字面意思是程序发生死锁了,它会导致w3wp进程重启.通常这个问题不好查到原因.我知道两个可能导致此问题的实例 1. 在程序中使用了lock或者ReaderWriterLock,锁资源发生了争用 下面是一小段代码: 复制代码 代码如下: //_rwLock的类型是ReaderWriterLock _rwLock.AcquireWriterLock(100); DoSomething(); _rwLock.ReleaseWriterLock(); 这行代码是有问题的,如果在DoSometh

【转】.NET完美实现伪静态页面,URLRewriter.dll下载

URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.比如浏览器发来请求hostname/101.aspx ,服务器自动将这个请求中定向为http://hostname/list.aspx?id=101. url重写的优点在于:缩短url,隐藏实际路径提高安全性易于用户记忆和键入. 易于被搜索引擎收录 二 实现url重写的基本方法下载MS的URLRewriter.dll,放到你的web程序的bin下下载地址1:http://www.sinoec.cn/fordown/UR

IIS处理asp.net请求和asp.net的页面生命周期

当一个客户端页面访问IIS试图获取一些信息的时候,发生了什么事情?一个请求在通过了HTTP管道后又发生了什么?本文主要是描述这两个过程,即IIS处理asp.net请求和asp.net的页面生命周期.欢迎大家积极拍砖,共同学习,共同进步. 首先我们要弄清楚两个非常重要的概念: 1, worker process(w3wp.exe). worker process管理所有的来自客户端的请求并给出响应.它是IIS下asp.net应用程序的核心. 2, application pool. 它是worke

.NET环境下增加网站IP过滤功能

华能集团下某发电厂的企业网站(基于Asp.Net2.0实现,不允许修改源程序)要求实现"厂内用户可直接访问整个站点的所有页面,厂外用户只能访问指定的页面"的功能,本文将按照需求分析.方案设计.编码实现.部署应用的顺序逐步阐述整个解决方案的形成过程. 华能集团下某发电厂的企业网站(基于Asp.Net2.0实现,不允许修改源程序)要求实现"厂内用户可直接访问整个站点的所有页面,厂外用户只能访问指定的页面"的功能,本文将按照需求分析.方案设计.编码实现.部署应用的顺序逐步

在.NET环境下为网站增加IP过滤功能

华能集团下某发电厂的企业网站(基于Asp.Net2.0实现,不允许修改源程序)要求实现"厂内用户可直接访问整个站点的所有页面,厂外用户只能访问指定的页面"的功能,本文将按照需求分析.方案设计.编码实现.部署应用的顺序逐步阐述整个解决方案的形成过程. 摘要:华能集团下某发电厂的企业网站(基于Asp.Net2.0实现,不允许修改源程序)要求实现"厂内用户可直接访问整个站点的所有页面,厂外用户只能访问指定的页面"的功能,本文将按照需求分析.方案设计.编码实现.部署应用的顺

在 ASP.NET 中执行 URL 重写

asp.net|执行 Scott Mitchell 4GuysFromRolla.com 适用范围: Microsoft ASP.NET 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重写.URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.讨论实现 URL 重写的各种技术,并介绍执行 URL 重写的一些实际情况. 下载本文的源代码. 本页内容 引言 URL 重写的常见用法 请求到达 IIS 时将会发生什么情况 实现 URL 重写 构建 UR

保护xml配置文件,不让直接访问

xml|访问 有些程序,配置文件是写在xml文件内的,这么做有一定的益处,不过对于敏感的配置,比如访问密码等,还是不做在xml配置里面好. 如果已经用了xml配置文件,并且不想被别人直接访问,则可以采用以下2种方法. [1].采用接管IIS对XML文件托管的方法. 这种方法常用在处理图片的程序上,比如要保护站内的图片资源不被非授权用户访问,就可以这样做,接管对jpeg,jpg等文件的访问请求处理,达到访问图片与访问页面一样可以控制访问者的权限. [2].修改web.config配置 在iis中添

IIS处理Asp.net请求和Asp.net页面生命周期说明

首先我们要弄清楚两个非常重要的概念: 1, worker process(w3wp.exe). worker process管理所有的来自客户端的请求并给出响应.它是IIS下asp.net应用程序的核心. 2, application pool. 它是worker process的容器,IIS5及之前的IIS版本均没有application pool的概念.每一个application pool对应着一个worker process,在IIS Metabase中维护着Application Po