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エラーが出て正しく表示されない。

160324_1332.png

原因

IISのモジュール「URL Rewrite」でエラーが出ていた。具体的には、「コンピュータの管理」より、Windowsログ>アプリケーションを確認すると、次の内容のエラーが出ているのが分かる。

160324_1338.png

説明:
モジュール 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

関連するタグ

関連するタグは現在ありません。