質問

QNo.1963402 IISのタイムアウト設定について
質問者:club_m2005 Windows2000+IIS6.0+ActivePerlで、時間がかかる処理を行うプログラムを作成しているのですが、
CGIタイムアウトが発生してしまい、最後まで実行
出来ません。

IISの設定で、ASPのタイムアウトや、セッションタイムアウトを30分とかに設定してもなぜか5分ほどでエラーになってしまいます。

どのようにすればCGIの実行時間を延ばせるのでしょうか?
困り度:
  • 暇なときにでも
質問投稿日時:
06/02/13 17:19
この質問に対する回答は締め切られました。

回答良回答10pt

ANo.1 根本的な解決になるかどうか分かりませんが、以前にASPでタイムアウトを
アプリ側で回避するために用いたのは、処理を行っている間、
定期的にクライアント側にコメント文を送ってやるという方法でした。

Perl でもこれと同様の処理を行えばとりあえずは解決できるのでは
ないかと思います。

ASP版ですがその時と同じような処理を解説しているサイトが
あったので載せておきます。
回答者:icmp
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
06/02/14 17:48
参考URL: http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/adoasync.html
この回答への補足すいません。自己解決しました。

IISのメタベースファイルを直接編集することで、
設定出来ました。
今後同じような問題を抱えた人のために。

1.IISを停止する。
2.C:\WINDOWS\System32\Inetsrv\MetaBase.xmlを
  メモ帳などで開く。
3.CGITIMEOUTの項目を探し、タイムアウト値を
  秒数で設定する。
4.IISを開始する。

ただし、メタベースファイルが壊れるとIISが動かなく
なる恐れがありますので、触る場合は慎重に行う必要があります。

詳しいことはMicrosoftのHPにて調べてください。
この回答へのお礼回答あいりがとうございます。
わたしも最初はその方法を考えていたのですが、
Windowsではシグナル(ALRM)がちゃんと使えないので、
やむなく、IISの設定でタイムアウト時間を
延ばす方向で考えていました。