アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perlでプログラムを書きIIS 5.1で実行すると約5分程度で下記のようなメッセージでCGI Timeoutになってしまいます。
下記のURLの指示に従いIISのCGIスクリプトタイムアウト値は300秒から1800秒に延長しています(IIS5.1なのでGUIは少し違いますが)。
http://www.microsoft.com/japan/technet/community …

原因を教えてください。

CGI Timeout
The specified CGI application exceeded the allowed time for processing. The server has deleted the process.

よろしくお願いします。

A 回答 (2件)

一応Perlカテゴリーでの質問ですのでPerl側の対処法を説明します。



■forkを使ってバックグラウンド処理にさせる。
http://www.stackasterisk.jp/tech/program/perl04_ …

ブラウザ上での応答だけはすぐに行うが、実際はサーバー内の別プロセスでじっくり最後まで実行させることができます。


途中経過や最終結果のレポートを表示しないといけない場合は、上記方法ではだめです。

この回答への補足

すみません。自己解決しました。
MetaEditの\\LM\W3SVC\1\ROOT\プログラム名のCGI Timeout値を1800秒にすることで解決しました。

ご協力ありがとうございました。

補足日時:2008/06/01 14:43
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
しかしながら、下記のように結果を表示する必要がありますので、forkでは難しいかと思います。

>>そのプログラムは何をするものだったんでしょう?
>入力された値(アドレス情報含む)を取得してネットワーク機器を制御し
>て得た結果を返すプログラムです。



>一応Perlカテゴリーでの質問ですのでPerl側の対処法を説明します。

CGIのカテゴリですが、それに付随するエラーメッセージをサーバ側が出力していますので良いと思いましたが、IISの設定に関してはサーバやwindowsカテゴリに登録すべきだったのかもしれません。
しかしながら、私が知りたいのは下記事項です。

>タイムアウト自体はプログラムミスの可能性はありますが、
>長時間かかる処理は約5分で必ずタイムアウトしてしまうので、
>それを延長する設定ファイル場所や方法が知りたいのです。


よろしくおねがいします。

お礼日時:2008/05/25 15:59

タイムアウトになりそうなプログラムを書いていないといえる根拠がなにもわかりませんので、単純にタイムアウトになるようなプログラムではないかと思えるのですが。



そのプログラムは何をするものだったんでしょう?

・無限ループになっていませんか?
・巨大なファイルの読み書きをしていませんか?
・長時間かけてメール配信していませんか?
・スリープさせていませんか?

この回答への補足

>タイムアウトになりそうなプログラムを書いていないといえる根拠がなにもわかりませんので、単純にタイムアウトになるようなプログラムではないかと思えるのですが。
タイムアウト自体はプログラムミスの可能性はありますが、長時間かかる処理は約5分で必ずタイムアウトしてしまうので、それを延長する設定ファイル場所や方法が知りたいのです。


>そのプログラムは何をするものだったんでしょう?
入力された値(アドレス情報含む)を取得してネットワーク機器を制御して得た結果を返すプログラムです。

>・無限ループになっていませんか?
なっていません。
5分以内で処理できるものについては応答が正常に返ってきています。

>・巨大なファイルの読み書きをしていませんか?
していますが、別の処理をする時にもそのファイルを読み取って正常に処理が終了していることからタイムアウトの原因とは考えにくいです。

>・長時間かけてメール配信していませんか?
メール配信プログラムではありません。

>・スリープさせていませんか?
していません。


IISの設定でCGIタイムアウトを延長させる設定がある(CGIスクリプトタイムアウト値以外に)らしいという話は聞きましたが、忘れたと、言われました。もし、ご存知でしたら教えてください。

レジストリをいじることでうまくいくなら、その方法もお願いします。
※ちなみにMetaBase.xmlはIIS5.1ではMetaBase.binであり編集できませんでした。

補足日時:2008/05/25 02:46
    • good
    • 0
この回答へのお礼

>>・無限ループになっていませんか?
>なっていません。
>5分以内で処理できるものについては応答が正常に返ってきています。
5分以上かかる同じ処理をCGIではなくperlとしてテキスト処理をすると正常に処理できます。

お礼日時:2008/05/25 02:51

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