質問者
w3wp.exe(rewrite.dll)のエラーが発生後にアプリケーションプールが停止する問題

質問
-
■発生する環境について
Windows Server 2012R2 バージョン6.2 (ビルド 9200)IIS (Version 8.5.9600.16384)
Windows Server 2008R2 バージョン6.1(ビルド7601 Service Pack 1) IIS(Version 7.5.7600.16385)
■事象について
イベントログでイベントID 1000、1001 が連続発生後アプリケーションプールが停止し、
Webサイトで表示しようとすると内部エラー503となりサイトが表示できなくなる事象が発生し困っています。
2017/11末~2017/12中旬にかけてWindowsサーバーで相次いで発生しましたが
この昨年から再現しておらず再現条件、原因不明で対策が立てられずに困っています。
原因、対策など情報がありましたら共有をお願いします。
■アプリケーションエラーについて
ApplicationError イベントID 1000
障害が発生しているアプリケーション名: w3wp.exe、バージョン: 8.5.9600.16384、タイム スタンプ: 0x5215df96
障害が発生しているモジュール名: rewrite.dll、バージョン: 7.1.871.0、タイム スタンプ: 0x4c2294c6
例外コード: 0xc0000005
障害オフセット: 0x0000000000039d2a
障害が発生しているプロセス ID: 0x1228
障害が発生しているアプリケーションの開始時刻: 0x01d372a7eff1b492
障害が発生しているアプリケーション パス: c:\windows\system32\inetsrv\w3wp.exe
障害が発生しているモジュール パス: C:\Windows\system32\inetsrv\rewrite.dll
レポート ID: 5807f88c-ded2-11e7-80d0-005056867aef
障害が発生しているパッケージの完全な名前:
障害が発生しているパッケージに関連するアプリケーション ID:Windows Error Report イベントID 1001
障害バケット 、種類 0
イベント名: APPCRASH
応答: 使用不可
Cab ID: 0問題の署名:
P1: w3wp.exe
P2: 8.5.9600.16384
P3: 5215df96
P4: rewrite.dll
P5: 7.1.871.0
P6: 4c2294c6
P7: c0000005
P8: 0000000000039d2a
P9:
P10:添付ファイル:
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\WERFAE6.tmp.appcompat.txt
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\WERFB55.tmp.WERInternalMetadata.xml
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_ec175a1f6fac1e56d16ccd26e361058bc45c3b_9e3fd63b_cab_f404fcba\memory.hdmp
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_ec175a1f6fac1e56d16ccd26e361058bc45c3b_9e3fd63b_cab_f404fcba\minidump.mdmpこれらのファイルは次の場所にある可能性があります:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_ec175a1f6fac1e56d16ccd26e361058bc45c3b_9e3fd63b_cab_f404fcba分析記号:
解決策を再確認中: 0
レポート ID: 5d60f583-ded2-11e7-80d0-005056867aef
レポートの状態: 4
ハッシュされたバケット:
すべての返信
-
原因の調査方法として考えられるのは、以下の方法でトラブルシュートする等でしょうか。(事象が再現していないとの事で難しいかもしれませんが)
Troubleshooting High CPU in an IIS 7.x Application Pool
また、事前対策であれば以下が考えられます。
・最新の更新プログラムを適用する (特に w3wp.exe の修正が含まれるもの)
・アプリケーション プールの設定をチューニングする
(プライベート メモリ制限の上限値を増やす等)
-
ご回答ありがとうございます。
あれから発生頻度について 今一度確認したところ、
アプリケーションプールは停止する事象は発生せず w3wp.exeのエラーは出続けていることがわかりました。
IISのアプリケーションプールの既定の設定ではラピッドフェール機能が有効になっていて
w3wp.exe のエラーが連続で5回以上発生するとアプリケーションプールが落ちる設定となっていますが落ちない場合もあるようです。
頻度としては Windows Server 2008R2 が月1~2回、Windows Server 2012R2 はほぼ毎日です。
2008R2はWebサイトは数個しかないですが、2012R2は数十ものサイトで運営しています。
アクセス量がまったく異なっているのでこういった違いが出るのだと思います。
処置については、更新プログラムを探す方向で検討していますが
異常が出ているモジュールはrewrite.dll となっているので、この問題とは言えないでしょうか?
IIS URL Rewrite Module 2 がインストールされていますがこれを最新化することも検討しています。
-
rewrite.dll が原因である可能性は否定できませんが、エラーログだけでは判断できませんね・・・
取り合えず rewrite.dll の不具合修正だと以下の KB が有る様ですので参考まで。
URL Rewrite 2.0 leaks memory when an outgoing rule is processed against a multivalue server variable
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2018年5月24日 8:28
-
ウェブ アプリケーションのワーカー プロセスである w3wp.exe がクラッシュしているのだから、IIS のアプリケーション プールの停止も、フツーに考えればその影響のような気もしますが。。。
w3wp.exe クラッシュ時のアプリケーション ログには "例外コード: 0xc0000005" とあるので、STATUS_ACCESS_VIOLATION すなわちメモリ アクセス違反が発生したことを示しています。
STATUS_ACCESS_VIOLATION エラーが発生する典型的な例はメモリ破壊ですから、ウェブ アプリケーション ワーカー プロセスのクラッシュが、ホスト サービスである IIS 本体側に影響を与えているのは?w3wp.exe のクラッシュはまだ発生しているとのことですから、そのクラッシュ原因をきちんと調査してみては?
w3wp.exe クラッシュ時に WER による Process Dump が生成されているようなので、それをきちんと解析すれば、クラッシュ原因もわかるかも。