プロが教える店舗&オフィスのセキュリティ対策術

Windows2000+IIS6.0+ActivePerlで、時間がかかる処理を行うプログラムを作成しているのですが、
CGIタイムアウトが発生してしまい、最後まで実行
出来ません。

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

どのようにすればCGIの実行時間を延ばせるのでしょうか?

A 回答 (1件)

根本的な解決になるかどうか分かりませんが、以前にASPでタイムアウトを


アプリ側で回避するために用いたのは、処理を行っている間、
定期的にクライアント側にコメント文を送ってやるという方法でした。

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

ASP版ですがその時と同じような処理を解説しているサイトが
あったので載せておきます。

参考URL:http://www.geocities.co.jp/SiliconValley/4334/un …

この回答への補足

すいません。自己解決しました。

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

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

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

詳しいことはMicrosoftのHPにて調べてください。

補足日時:2006/02/15 12:01
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/02/15 11:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!