returnえんじにゃー

学び直し中元エンジニアのアウトプットブログ。技術やものづくり。たまに猫。

ClassicASPでセッションタイムアウトを20分以上に設定する(IIS)

はじめに

現在携わっているシステムはいわゆるレガシーシステムというやつで、
ClassicASP&VB.Script(ブラウザはもちろんIE)という、どの懇親会に行っても失笑される(または何それみたいな顔をされる)システムたちを保守しているのだが、
最近「セッションタイムアウト時間を20分から1時間に変更してほしい」という依頼が来たのでいろいろ設定した際、なかなかめんどくさかったのでメモ。

やったこと

IISでの設定

ASP.NETの資料は大量に出てくるのに、ClassicASPの資料全然出てこおへん・・と思いつつ
下記サイト様を参考に、まずWEBサイト>該当のアプリケーションを開き、セッション状態>Cookieの設定内のタイムアウトを設定してみた。

参考
https://blog.goo.ne.jp/greenracoon/e/b8f62f2c640e3cdd143aa67cb60be5b5
https://codeday.me/jp/qa/20190304/358777.html

セッション状態をクリック。

タイムアウトはデフォルトで20分なので、60分に設定してみて、まずは30分後に様子見。


しかしタイムアウトしてしまった。しかも20分で。

むむむ‥と調べたところ、どうやらWEBサイトだけでなく、そのサイトが乗っているアプリケーションプール(DefaultAppPool)の設定をしないといけないらしい。
※ WEBサイトで「インプロセス」という設定をしていると、アプリケーションプールの設定を有効にするらしい。




なので、試しにアプリケーションプールの設定を5分にしてみて、5分後に確認してみたところ5分でセッションが切れた!

これを5分⇒60分にして再度様子を見たところ・・・・またしてもタイムアウトしてしまった!

どうやら20分で切れてしまっている模様。

他の各設定を必死にさがしたところ、
ASP』の中の「セッションプロパティ」「制限プロパティ」のなかにもタイムアウト設定箇所を発見。


そこにあったのか・・・!

こちらも20分になっていたので、とりあえずどちらも1時間に延ばして様子をみたところいけた!

アイドルタイムアウトの優先度的には、アプリケーションプール>WEBサイトの設定なんだろうけど、
そもそもWEBサイトのセッションが先に切れてたらそりゃどうしようもないわな、というような話でした。

そして、よく調べりゃ出てきてた・・・。

参考
http://classicasp.blog.fc2.com/blog-entry-10.html
https://culage.hatenablog.com/entry/20100618/1276786

まとめ

普段IISを意識したり触ったりしてこなかったので、もっと勉強する必要があると反省した。。
また、先人の尊さを敬いつつ、きっとこの世界の片隅で私のようにレガシーなシステムたちに苦しんでいる人たちがいると思うので、
そういう人たちの救いになれるようになるべくこういうことも発信していきたい、そう思ったのでありました。唐突なマザーテレサ感。

おわり。