[#41630] [ANN] langhelp-0.9.0 — rubikitch@...
るびきちです。
7 messages
2005/12/01
[#41654] Hashを継承したクラスの利用方法について — saitani <cxj15527@...>
お世話になります。
9 messages
2005/12/04
[#41720] Tempfile#== — とみたまさひろ <tommy@...>
とみたです。
5 messages
2005/12/21
[#41728] ruby 1.8.4 released — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
9 messages
2005/12/24
[ruby-list:41687] IIS 6.0 上での ERuby + CGI;:Session の動作
From:
tamiyasu_m@...
Date:
2005-12-09 07:18:47 UTC
List:
ruby-list #41687
村上と申します。
拙作のeRubyが特定の環境で、動作しなかったため、原因を調査したのですが、
自力では解決不能な状況のため、質問させてください。
Windows 2003 (SP1) Server の 上で
C:\>eruby.exe --version
eRuby version 1.0.5
ruby 1.8.3 (2005-07-22) [i386-mswin32]
が動作しており、IIS 6.0にCGIとしてruby/erubyが動作する仮想ディレクトリを
設定しました。
eRubyで、以下のようなものを作り、
====ここから
%require 'cgi'
%require 'cgi/session'
%
%ERuby.noheader = true
%cgi = CGI.new
%session = CGI::Session.new(cgi,{'tmpdir' => 'd:/temp'})
%
%t = Time.now.to_s
%lastdotime = session['lastdotime']
%session['lastdotime'] = t
% #(12)
%session.close
%
%print cgi.header({'type' => 'text/plain'})
<%=[t, lastdotime].join("\n")%>
====ここまで
ブラウザからアクセスしたところ、
1度目にアクセスと期待通り、1つだけ日時が表示されるのですが、
2度目、エラーが発生して、動作不能になってしまいます。
(ブラウザには、以下のような、IISからの?メッセージが表示されます。)
CGI Timeout
The specified CGI application exceeded the allowed time for processing.
The server has deleted the process.
また、1度目に作成されたd:/tempにあるセッションファイルが、2度目実行直後
に0Byteになり、タイムアウトするまで"eruby.exe"がタスクマネージャに表示さ
れ続けます。
タイムアウトで強制終了されるせいか、%begin〜%rescue Exception〜%endで囲
んで、エラーの内容を得ることも出来ませんでした。
実行した行番号を無理矢理ファイルに書き出して確認すると、12行目(#(12)のと
ころ)までは実行されているようです。
またほぼ同様の内容を Ruby Script で同様の動作をするようにした以下のスク
リプトでは、期待通り、1度目は、実行した時間、2度目は実行した時間 + 前回
実行した時間が表示されます。
====ここから
require 'cgi'
require 'cgi/session'
cgi = CGI.new
session = CGI::Session.new(cgi, {'tmpdir' => 'd:/temp'})
t = Time.now.to_s
lastdotime = session['lastdotime'].to_s
session['lastdotime'] = t
session.close
print cgi.header({'type' => 'text/plain'})
print [t, lastdotime].join("\n")
====ここまで
Windows XP + IIS 5.1 や
Windows 2003 + Apache2 等でも確認しましたが
eruby/rubyとも、(tempディレクトリを存在するドライブに移動するなどすれば)
期待通りの動作をします。
もし、解決方法や原因をご存じの方がいらっしゃいましたら、ご教授願えません
でしょうか?
村上民恭