当 ASP.NET 在 IIS 6.0 中锁死的情况下,如何生成转储文件

文章翻译 文章翻译
文章编号: 828222 - 查看本文应用于的产品

本任务的内容

展开全部 | 关闭全部

本文内容

概要

当您在 Internet 信息服务 (IIS) 6.0 中遇到被锁死的情况时,应用程序事件日志中会出现类似下面这样的错误信息:

类型:警告
来源:W3SVC-WP
类别:无
事件 ID:2262
日期:7/29/2003
时间:12:08:58 PM
用户:N/A
计算机:ComputerName
描述:ISAPI 'C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll' reported itself as unhealthy for the following reason:'Deadlock detected'.(“C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll”因以下原因将自身报告为有害文件:检测到锁死情况。)

有关详细信息,请访问“帮助和支持中心”,网址为: http://support.microsoft.com

.

在系统事件日志中会出现类似下面这样的错误信息:

类型:警告
来源:W3SVC
类别:无
事件 ID:1013
日期:7/29/2003
时间:12:09:34 PM
用户:N/A
计算机:ComputerName
描述:A process serving application pool 'DefaultAppPool' exceeded time limits during shut down.The process id was '2756'.(进程服务应用程序集“DefaultAppPool”在关闭过程中执行了时间限制。进程 ID 为“2756”。)

有关详细信息,请访问“帮助和支持中心”,网址为: http://support.microsoft.com

.

为诊断程序生成转储文件

IIS 6.0 有一项叫做“孤立工作进程”的新功能。此功能使您能在预定要回收的进程终止之前对其进行检查。孤立工作进程可用来在进程中附加一个调试程序并生成一个供调查使用的转储文件。

注意:当进程运行在 IIS 5.0 兼容模式中时,此功能不可用。

创建一个批处理文件,在一个工作进程被孤立时执行

  1. 启动记事本。
  2. 将下面的代码粘贴到记事本中:
    @if "%_echo%"=="" echo off
    setlocal
        set TIMESTAMP=%DATE:~-9%_%TIME%
    set TIMESTAMP=%TIMESTAMP:/=_%
    set TIMESTAMP=%TIMESTAMP::=_%
    set TIMESTAMP=%TIMESTAMP:.=_%
    set TIMESTAMP=%TIMESTAMP: =_%
    set FILENAME=c:\crash_%TIMESTAMP%.dmp
    set LOG=c:\log.txt
    set COMMAND=c:\debuggers\cdb.exe -c ".dump /o /mhf %FILENAME%;q" -p %1
    
    echo %COMMAND% > %LOG%
    %COMMAND%
    
    endlocal
  3. 将文件保存为文件名.cmd。在这个例子中,我们将文件命名为 action.cmd。但是,您也可以随意给文件起别的名字。
注意:您可能必须修改调试程序的位置和您想要生成转储文件的位置。

配置孤立工作进程设置

  1. 在命令提示符处键入以下命令,然后按 Enter:
    cd \Inetpub\adminscripts
  2. 要使孤立工作进程的功能可用,需要在命令提示符下键入以下命令:
    adsutil.vbs SET W3SVC/AppPools/DefaultAppPool/OrphanWorkerProcess TRUE
    
  3. 在命令提示符下,设置当进程预定要回收时运行的可执行文件。例如,在这种情况下使用在“创建一个批处理文件,在一个工作进程被孤立时执行”一节创建的批处理文件:
    adsutil.vbs SET W3SVC/AppPools/DefaultAppPool/OrphanActionExe "c:\action.cmd"
    adsutil.vbs SET W3SVC/AppPools/DefaultAppPool/OrphanActionParams "%%1%%"
    
注意:请确保 OrphanActionExe 选项指向在“创建一个批处理文件,在一个工作进程被孤立时执行”一节创建的批处理文件的位置。还要确保 W3wp.exe 进程的标识对该文件有读取和执行权限。

参考

有关更多信息,请访问下面的 Microsoft Developer Network (MSDN) 网站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/92d00c5e-e588-4151-be84-42561e9229f0.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/0efabfb5-c5dd-4a47-a52c-18335ffe1c45.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/c70603f3-7fc2-4e0b-b177-77b92c8fb38b.asp

属性

文章编号: 828222 - 最后修改: 2006年9月22日 - 修订: 6.2
这篇文章中的信息适用于:
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
关键字:?
kbdebug kbhowtomaster KB828222
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com