私は、テスト用にローカルで IIS 7.0 を使用して、Windows Vista Ultimate (64 ビット) ワークステーションで Web サイトを開発しています。時々、「IIS ワーカー プロセスが動作を停止し、閉じられました」というエラー ポップアップが表示されます。その後はサイトの作業を継続できるので、IIS は問題なく新しいワーカー プロセスを生成しているようです。
エラー ログを見ると、IIS が設計どおりに、指定された期間非アクティブになった後にワーカー プロセスをシャットダウンしているようです。ここまでは順調ですが、なぜエラーが発生するのでしょうか。
このサイトは、ローカルホストのポート 8008 でホストされており、PHP (ISAPI) と URL 書き換えモジュールを使用していますが、それ以外は非常にシンプルに構成されています。関連するエラー ログ エントリは、時系列順に次のとおりです。
システム ログ、午後 12:10:18 (情報、イベント 5186、WAS):
アプリケーション プール 'SDL' にサービスを提供するプロセス ID '6288' のワーカー プロセスは、非アクティブのためシャットダウンされました。アプリケーション プールのタイムアウト構成は 20 分に設定されています。必要に応じて新しいワーカー プロセスが開始されます。
アプリケーション ログ、午後 12:10:20 (エラー、イベント 1000、アプリケーション エラー):
障害のあるアプリケーション w3wp.exe、バージョン 7.0.6002.18005、タイム スタンプ 0x49e023cf、障害のあるモジュール ntdll.dll、バージョン 6.0.6002.18005、タイム スタンプ 0x49e03824、例外コード 0xc0000374、障害オフセット 0x000ab0bf、プロセス ID 0x1890、アプリケーション開始時刻 0x01ca0255c7b92db0。
システム ログ、午後 12:10:24 (警告、イベント 5009、WAS):
アプリケーション プール 'SDL' を提供するプロセスが予期せず終了しました。プロセス ID は '6288' でした。プロセス終了コードは '0xff' でした。
答え1
アプリケーション ログのエラー コード (0xc0000374) はヒープ破損エラーです。クラッシュ ダンプを使用してこれをさらにデバッグすることもできますが、これは面倒です。ISAPI DLL を使用しているとのことですので、IIS7 を具体的にサポートする DLL の更新バージョンを探してください。