スレッド プールが使い果たされた場合、バックグラウンドのバッチ コンパイルが原因で、デッドロックが発生する

この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
概要
バックグラウンドのバッチ コンパイル実行時、すべてのワーカー スレッドが使用された場合、コンパイルが原因で 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,Callee0c06f938 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)
解決方法

修正プログラムの入手方法

この問題は、ASP.NET 修正プログラム パッケージ 1.1 (2003 年 6 月) で修正されています。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
821156 INFO: ASP.NET 1.1 June 2003 Hotfix Rollup Package
821156 [INFO] ASP.NET 1.1 修正プログラム ロールアップ パッケージ (2003 年 6 月)
この修正プログラムを個別に入手することはできません。ロールアップをインストールする必要があります。

: この修正プログラムを要求した場合は、ロールアップが送付されます。

修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
	             日付            時刻    バージョン      サイズ       ファイル名		   -----------------------------------------------------------------------		   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
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 821155 (最終更新日 2003-11-13) を基に作成したものです。
プロパティ

文書番号:821155 - 最終更新日: 02/27/2014 05:27:37 - リビジョン: 2.1

  • Microsoft ASP.NET 1.1
  • kbnosurvey kbarchive kbqfe KB821155
フィードバック