前回までのあらすじ。
- IE11+Windows8.1の環境下でロードバランサ使ってると、つながってるサーバが唐突に変わる事象が起きる
- 調べてみるとCookieを使用したロードバランシングをしていると、ロードバランサが採番したセッションCookieのキーが唐突に変わることがある
- Win8.1以降のOSの場合、ピン留め機能のために定期的にサイトのルートへ「Get browserconfig.xml」というHTTPリクエストを発行している模様
- このリクエストにロードバランサのCookieがついてない
- ロードバランサが初回のアクセスと勘違いしてバランシングして別サーバに飛ばされるっていう原因
- ブラウザの保護モードを有りにするとこのリクエストにCookieをつけるようになる ←イマココ
で、保護モードを有効にするためにはUACが有効になってる必要があるようなのでUACを有効にする。
そしたら今度はIE11のエンタープライズモードが有効にならない事がわかった。あーあと、こんな古臭いことやってる人はいないと思いますが、IEのDLLホスティング使ってると、おおむね動くんだけど、保護モードで動かすと、特定のライブラリ読み込むときに、クライアント側で動的コンパイルしてるらしく、そのDLLの出力先の整合性が取れてない感じがして、変な例外が裏で発生する。IEのバグなのかしら?
とゆーことで保護モードを有効にして回避することはできませんでした。あ、自分が使うときはIE11のエンタープライズモードで動かさないとダメなもんで。
もーどうしよーもなし。IPでのバランシングに変えるしかない。NATとか使ってたら詰むね。。。
サイトのHTML直せるなら、METAタグで一個追加すればいけそうな気がする。MSDN的に。
<meta name="msapplication-config" content="none"/>
↑を入れれば、問題のリクエストをやめてくれるだろうか。