• 締切済み

IISのタイムアウト設定について

Windows2000+IIS6.0+ActivePerlで、時間がかかる処理を行うプログラムを作成しているのですが、 CGIタイムアウトが発生してしまい、最後まで実行 出来ません。 IISの設定で、ASPのタイムアウトや、セッションタイムアウトを30分とかに設定してもなぜか5分ほどでエラーになってしまいます。 どのようにすればCGIの実行時間を延ばせるのでしょうか?

みんなの回答

  • icmp
  • ベストアンサー率63% (14/22)
回答No.1

根本的な解決になるかどうか分かりませんが、以前にASPでタイムアウトを アプリ側で回避するために用いたのは、処理を行っている間、 定期的にクライアント側にコメント文を送ってやるという方法でした。 Perl でもこれと同様の処理を行えばとりあえずは解決できるのでは ないかと思います。 ASP版ですがその時と同じような処理を解説しているサイトが あったので載せておきます。

参考URL:
http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/adoasync.html
club_m2005
質問者

お礼

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

club_m2005
質問者

補足

すいません。自己解決しました。 IISのメタベースファイルを直接編集することで、 設定出来ました。 今後同じような問題を抱えた人のために。 1.IISを停止する。 2.C:\WINDOWS\System32\Inetsrv\MetaBase.xmlを   メモ帳などで開く。 3.CGITIMEOUTの項目を探し、タイムアウト値を   秒数で設定する。 4.IISを開始する。 ただし、メタベースファイルが壊れるとIISが動かなく なる恐れがありますので、触る場合は慎重に行う必要があります。 詳しいことはMicrosoftのHPにて調べてください。

関連するQ&A

  • セッションタイムアウトの設定時間通りにならない

    C#によるWebアプリケーションを開発しています。 セッションタイムアウトの設定を240分としていますが、 240分前にタイムアウトになってしまいます。 設定時間通りにタイムアウトにならない事象が発生しており、 原因を究明しています。 【状況】 Web.configとIISにて、セッションタイムアウトの時間を 設定しております。 (1)Web.configの設定 Web.config内にて、 <sessionState timeout = "240" /> のタグを設けて、セッションタイムアウトの時間を240分としています。 (2)IISの設定 IISにて、アプリケーションの構成の【オプション】タブにて、 「セッションのタイムアウト」を240分としています。 【環境】 OS:Windows Server 2003 Webサーバ:IIS6.0 DBサーバ:SQL Server 2005、 セッションタイムアウトが指定時間に行われない原因について、 ご教授の程お願い致します。

  • Windowsで重い処理を実行したい

    CGIを作成している環境が Windows2000+IIS+ActivePerlで、時間がかかる処理を 行うプログラムを作成しています。 いろいろ調べて、alarm()とシグナルでブラウザタイムアウトを 防ぐ方法や、forkして子プロセスする方法などを、 試したのですが、うまくいかず、 よくよく調べてみるとWindows環境だと、alarmもforkも未実装らしく困り果てています。 IISでタイムアウト時間を延ばすのは避けたいです。 ブラウザのタイムアウトを回避しつつ、処理の長い CGIを実行するいい方法はないでしょうか?

    • ベストアンサー
    • Perl
  • CGIでサーバタイムアウトを避ける方法

    cgiアプリで、かなり時間のかかるDB登録処理を作成しています。 で、サーバのタイムアウトになりアプリがIIS Serverにkillされてしまうのですが そのkillされるタイミングを知る方法はあるでしょうか? といいますのはkillされてしまうとフラグクリアなどの後処理ができず、 他のセッションからも処理ができなくなってしまうのです。 タイマー監視ではなく、その時のサーバのステータスなどがわかるといいのですが。 因みにサーバのタイムアウトの時間を変更することはできないんです。 または、それを回避させるために、 処理の途中でhttpレスポンスなどを発行して処理を継続させる方法など あるのでしょうか? 今はタイムアウト時間前に処理が終了できるよう かなり処理件数を制限していまして、   使いづらい といわれてします。 環境  windows server 2003  IIS で、 アプリはc言語で開発しています。

  • セッションタイムアウトエラー

    いつも参考にしております。 セッションタイムアウトのエラー(???)で困ってます。 ご存知の方がいらっしゃいましたら、ご教授お願いします。 環境: OS :Windows 2009 Sever ActivePerl : V5.8.9 Webサーバ :IISv7.0 CGI::Session.pm:v4.41 DB :Oracle 10g 詳細は下記のようです。 1.ログイン成功したら、セッションを作成します。 CGI::Session->name( "SID" ); my $session = new CGI::Session( "driver:File", undef, {Directory => 'C:/Inetpub/wwwroot/xxx/tmp/session'} ); $session->expire( '+10h' ); ...省略 2.上記で作成されたセッションIDを画面に保持し、画面遷移する際に セッションIDの存在チェックを行う my $session = CGI::Session -> new( undef, $sid, {Directory => 'C:/Inetpub/wwwroot/xxx/tmp/session'} ); if($sid eq $session -> id) { // セッションID存在する // 次の画面遷移する // セッションタイムアウト再設定 $session->expire( '+10h' ); } else { // セッションID存在しない $session->close; $session->delete; // 作成されたセッションファイルを削除 // エラー画面表示 } 現象: セッションタイムアウトの設定時間に経ってないにもかかわらず たまたまセッションタイムエラーが発生します。 P.S エラーの原因が特定できず、困ってます。 以上、宜しくお願いいたします

    • 締切済み
    • CGI
  • tomcatのセッションタイムアウト

    tomcatで構築されたWebアプリを検証しています。 Webアプリにログインし、何も操作せずにセッションタイムアウト時間の確認をしているのですが、 tomcatのセッションタイムアウトの設定値通りにセッションが切れません。 web.xmlの設定値は5分を設定しています。 大抵は設定時間+1分程で切れるのですが、 設定時間+3分ほど待ってみてもセッションが切れないケースがあり、原因がわからない状況です。 利用しているtomcatのバージョンは4.1.31です。 何かtomcatの仕様上でセッションタイムアウトの時間が変わるようなことがあるのでしょうか? 当方初心者のため、お手柔らかにお願いいたします。

  • phpのセションのタイムアウトについて

    os:ターボ8 PHP:4.2.3 phpのセションのタイムアウトについてご教授願えないでしょうか Q1.タイムアウトの初期値は変更できますか? php.iniの session.gc_maxlifetime = 1440 を session.gc_maxlifetime = 60 にしてhttpdを再起動して試してみたのですが1分以上放置してもセッション情報は残ったままでした。 これってどうなのでしょうか? Q2.プログラム内でタイムアウトの設定を確認するシステム変数はありますか? ちゃんとタイムアウトの時間が変わっているか確認したいのですが。 Q3.タイムアウトの時間を無限大にしてタイムアウトしない設定にする方法はありますか? 以上、個別でも結構ですのでお願いします。

    • 締切済み
    • PHP
  • タイムアウトしてしまいます

    お世話になります。 表記の件、WndowsNT4.0上でIIS4.0とPHP3を使用してwebアプリケーション(主にデータの集計をするアプリ)を設置しております。 データ量がかなり増えたせいで、クライアントがタイムアウトしてしまい、空白のページが表示されるようになってしまいました。 はじめはPHP自体のタイムアウト設定が原因なのかと、max_execution_timeの値を増やしたのですが、効果はありません。(タイムアウトするまでの時間(180秒)も変化無し) おそらくIISのほうの設定だと思うのですが、あまり詳しくないため、かなり困っております。 どなたか、お分かりになるかたはいらっしゃいませんでしょうか?

  • Perlの日記プログラムがIIS+ActivePerlで動かない

    ひとに見せるためでなく書いていた日記があり、これまで無料のCGI可サーバを使っていたのですが、今度からCGI不可になるということで、自宅のマシン(Win2K)にIIS+ActivePerlを導入して動作させようとしています。 過去データの表示はできるようになったのですが書き込みができません。エラー表示もなくタイムアウトになります。 無料サーバを使っていたときはFTPでファイルをアップロードしたときにパーミッションを変えたりしたのですが同じようにFTPソフトで変更しようとしたらWindowsではパーミッションを変更できない、と出ます。 このプログラムはIIS+ActivePerl上では動かせないのでしょうか。それとも何か設定を変えれば書き込みできるようになるのでしょうか。なお、日記CGIはnickyを使っています。 基礎的な知識がなく何が問題なのかアタリもつけられません。「ここらへん疑ってみ」などのアドバイスがありましたら教えてください。よろしくお願いします

  • IISでCGIとしてのPerlが動かない

    Win2K ProにてIISでローカルサーバーでサーバーサイドスクリプトの勉強中です。 ASPは標準でついているので、PerlとPHPを組み込みました。 PHPは内部プロセス型ではなく、CGIバージョンですが、正常動作しました。 もちろんASPも。 それで問題なのですが、Perlがどうしても動きません。 PHPと同じように実行ファイルのパスや拡張子の設定はできているはずです。 しかし、いつまでたっても出力が出ず、2分くらいたってCGIタイムアウトとなってしまいます。 PerlにはActive PerlとCygwin付属のPerl両方試しましたが、タイムアウトです。 ファイルをコンソール上で実行してみましたが、Active PerlもCygwinのPerlも、期待通りの出力がなされています。 ちなみに、shファイルをCygwinのbashに関連付けて、実行させましたが、コンソール上での出力とはうらはらに、ブラウザ上ではやはりタイムアウトとなりました。 PerlのソースはいずれもほかのところのApacheでは動いているものです。 httpヘッダも正常です。 ソースの文字コードは英語のみ、EUC、改行コードcr+lf、lfのみなど、いろいろ試しましたがダメでした。 なにが原因なのでしょう。 IISを使っている方、アドバイスお願いします。

  • 初期設定タイムアウト

    購入時の初期設定途中で本人確認の画面でタイムアウトをしてしまいました、表示メッセージ字は「セッションがタイムアウトしました。処理をやり直して下さい。」と出ているので何度もやり直してみたのですがぜんぜん前に進むことも戻ることもできません、どうしていいのかわからないのですが、どなたかご存知の方はいませんか? ※OKWAVEより補足:「Lenovo:ノートブック (IdeaPad・Lenovo等)」についての質問です。