Windows8.1→10にアップデートした時にIISで503エラー出る場合の対応
最近Windowsが「10にアップデートしろ」とうるさいのでアップデートしたところ、普段ウェブページの表示・動作確認用に使ってるIISで不具合出てハマったので、復旧方法についてメモっておく。
問題の起こった環境
- WIndows 8.1 → Windows 10 にアップデート
- IIS 8.5
- IIS URL Rewrite Module 2.0 を適用済み。
問題の概要
ローカルのマシンのOSを Windows8.1 から 10 に移行した後、ローカルのIISで構築したサイトにアクセス試みたら、503エラーが出て正しく表示されない。
原因
IISのモジュール「URL Rewrite」でエラーが出ていた。具体的には、「コンピュータの管理」より、Windowsログ>アプリケーションを確認すると、次の内容のエラーが出ているのが分かる。
説明: モジュール DLL C:\WINDOWS\system32\inetsrv\rewrite.dll を読み込めませんでした。このデータはエラーです。
問題の回避方法
国内や海外のリソースがないかググってみると、幾つか参考になりそうなソースがあったので、それを元にIIS環境の復旧を行う。
具体的には、モジュール「URL Rewrite」を再インストールする。
URL Rewirteのアンインストール
コントロールパネルより「プログラムの機能」を開き、ウインドウ右上のフリーワード検索に「Rewrite」とかひっかかりそうな文言を入れる。
「IIS URL Rewrite Module 2」と出てくるので、それをアンインストールする。
URL Rewriteモジュールの再インストール
Web Platform Installer からモジュール「URL Rewrite」の再インストールを行う。
※Web Platform Installer の詳細については、ここでは割愛する。
ここで少々ややこしいところがあり、普通にWeb Platform Installer からインストールを試みると、エラーとなりインストールされない。
原因はインストール時のIISのバージョンチェックに係る処理にバグがある為、との事。
また、回避方法として、Windowsのレジストリを一時的に変更する方法が紹介されていたので、ここではその方法を採る事にする。
※自己責任なので注意!!
具体的には、次のレジストリの、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp
「MajorVersion」の値について、URL Rewriteのインストール時だけ「9」に変更し、IISで503エラー出なくなった事を確認したら、インストール前の値に戻す。
筆者の場合はこれで問題が解消された。
ただ、もっと調べたら良い方法があるかもしれないし、そのうちMicrosoftがUpdateで解決してくれるかもしれないので、なるべく解消するならそっちで行きたい。
参考
IIS10におけるrewrite.dllのインストール - Kobarin's Development Blog
http://kobarin.hateblo.jp/entry/2015/09/24/152319
Windows 10 Upgrade and IIS 503 Errors - Rick Strahl's Web Log
http://weblog.west-wind.com/posts/2015/Jul/05/Windows-10-Upgrade-and-IIS-503-Errors
関連するタグ
関連するタグは現在ありません。