ARR Helper 使ってますか?私は ARR を使っている時だけではなく、前に X-Forwarded-For を付けるリバースプロキシが居るときには、ARR Helper を使うようにしています。
知らない人は前に書いたエントリを読んでみてください。良さが分かるはずです。
リバースプロキシが前にいることを意識する必要を無くしてくれる便利モジュールです。Azure App Service も前に ARR が居るので、知らないうちにみんなお世話になっているのです。
そんな App Service でも使われている ARR Helper ですが、配布されている msi を使うと IIS 10.0 の場合にバージョンチェックでエラーになってしまうという、辛い問題が発生していました。
Anil Ruia's Blog - Client-ip not logged on application server when using ARR
IIS 7 の時代に作られたインストーラーなので回避策としてレジストリを弄る方法ぐらいしかなく、某メーリングリストに投げても「必要なの?」みたいな返事で悲しかったのですが、最近 IIS 10.0 に対応したインストーラーを偶然にも見つけました。
それは IIS 10.0 に対応した ARR 3.0 をインストールすると同時に入ります。
ダウンロードした ARR 3.0 を普通にインストールします。URL Rewrite / ARR / HttpPlatformHandler は IIS 10.0 に対応したインストーラーが公開されているので、もちろんインストール出来ます。
インストール後に Program Files\IIS\Application Request Routing 以下を開くと、ひっそりと存在する x86 / x64 向けの ARR Helper のインストーラーが見つかるはずです。
これは IIS 10.0 に対応したインストーラーになっているので、普通にインストール出来ます。
インストール後に IIS Manager から確認してみましたが、ちゃんと ARR Helper が登録されていることが確認できます。もうレジストリを弄るハックなんて使わなくても大丈夫。
ARR Helper のインストールが問題となって Windows Server 2016 への移行を躊躇している面もありましたが、これで安心して Windows Server 2016 と IIS 10.0 にアップグレードできそうです。
こういう大切なことは何処かに書いておいてほしいと思いました。含まれてるなんて思わなかった。