线程池已用完时,背景批处理编译可能导致一个死锁

文章翻译 文章翻译
文章编号: 821155 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

本文内容

概要

当您执行背景批处理编译时,编译可能会导致死锁 Aspnet_wp.exe 过程,如果使用了所有工作线程。当您将进程模型设置为 maxWorkerThreads = 20,然后正运行的 Aspnet_wp.exe 线程的数目也等于 20 时,所有 20 工作线程等待一个 ManualResetEvent 来用信号通知。不能运行,直到没有可用的线程的 WaitCallback (BatchCompileDirectory) 函数发出信号事件。自由线程永远不会发生。使用线程池中的所有线程,然后生成一种情况下,需要模拟此方案中的批处理编译的。

您可能会看到在事件查看器的应用程序日志中记录以下事件:

事件 ID: 1003年:
描述: Aspnet_wp.exe (PID: <xxx>) 被回收,原因是它被怀疑是被死锁状态。它没有发送任何响应挂起的请求以最后一次 180 秒为单位)。

更多信息

当背景批处理编译导致死锁时,工作线程将返回以下的堆栈跟踪:
Current frame: 
ChildEBP RetAddr  Caller,Callee
0c06f938 03187c87 (MethodDesc 0x3228200 +0x27 System.Web.Hosting.RecyclableArrayHelper.ReuseIntegerArray)
0c06f940 099f63e2 (MethodDesc 0x3223fc0 +0x1ea System.Web.Hosting.ISAPIWorkerRequest.FlushCachedResponse)
0c06f98c 799de84f (MethodDesc 0x79bac930 +0x57 System.Threading.WaitHandle.WaitOne)
0c06f9b0 099f4389 (MethodDesc 0x322d660 +0x59 System.Web.HttpWriter.GetBufferedLength)
0c06f9c4 099f68a8 (MethodDesc 0x94e68a8 +0x8 System.Web.Compilation.PreservedAssemblyEntry/BackgroundBatchCompiler.BeforeDoneWithSessionHandler)
0c06f9c8 099f4178 (MethodDesc 0x3224970 +0x350 System.Web.HttpRuntime.FinishRequest)

解决方案

如何获取该修补程序

此问题固定在 2003 年六月 ASP.NET 修补程序软件包 1.1。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
821156信息: ASP.NET 1.1 2003 年六月修补程序汇总包
您不能单独获取此修复程序。您必须安装该汇总。

注意当您请求此修补程序时,您收到的总成型任务。

此修补程序的英文版具有文件属性 (或更高版本) 下表中列出。其格式为协调通用时间 (UTC) 列出日期和时间对这些文件。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
	           Date         Time   Version       Size       File name
		   -----------------------------------------------------------------------
		   07-Jun-2003  00:44  1.1.4322.910    253,952  Aspnet_isapi.dll
		   07-Jun-2003  00:44  1.1.4322.910     20,480  Aspnet_regiis.exe
		   07-Jun-2003  00:44  1.1.4322.910     32,768  Aspnet_wp.exe
		   15-May-2003  23:49                   33,522  Installpersistsqlstate.sql
		   15-May-2003  23:49                   34,150  Installsqlstate.sql
		   07-Jun-2003  12:52  1.1.4322.910  1,216,512  System.dll
		   07-Jun-2003  00:39                   14,472  Webuivalidation.js
		   07-Jun-2003  12:52  1.1.4322.910  1,249,280  System.Web.dll

属性

文章编号: 821155 - 最后修改: 2014年2月27日 - 修订: 2.1
这篇文章中的信息适用于:
  • Microsoft ASP.NET 1.1
关键字:?
kbnosurvey kbarchive kbmt kbqfe KB821155 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 821155
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,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