2011-08-10 11 views
0

私はmyapp.heroku.comでWebアプリケーションを構築しました。ここで、 "myapp"は実際にherokuによって生成されたランダムな名前です。私は私のWebブラウザでそれを打つとき、それは動作します。私はRubyの休憩クライアント(GEM残り-クライアントV1.6.3)でそれを打つときは、次のように:Herokuアプリケーション:RestClient :: InternalServerError

irb(main):024:0> response=RestClient.get "http://myapp.heroku.com" 

それは次のようにアウトクラップス:

RestClient::InternalServerError: 500 Internal Server Error 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client- 1.6.3/lib/restclient/abstract_response.rb:48:in `return!' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:228:in `process_result' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:176:in `block in transmit' 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:627:in `start' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:170:in `transmit' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:64:in `execute' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:33:in `execute' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient.rb:68:in `get' 
    from (irb):24 
    from C:/Ruby192/bin/irb:12:in `<main>' 

私はより良いと同じクライアントを使用する場合「http://www.google.com」や「http://www.heroku.com」などの既知のURLは正常に動作し、URLのコンテンツはダウンロードされ、すべてが良好です。 「http:// localhost:3000」で実行されているアプリケーションのバージョンで同じクライアントを使用すると、正常に動作します。

私はheroku.comでホストされているアプリケーションからデータを取得できないようにする残りのクライアントクライアントに何かがないのですか?

============ EDIT ====

その上で寝た後、私が試した===========追加情報:

irb> require 'net/http' 
irb> NET::HTTP.get_print URI.parse "http://myapp.heroku.com" 

正常に動作しました。

答えて

0

私はばかげています。

"heroku logs"をチェックすると、私のコードで例外が見つかって500のエラーが発生しました。例外は、herokuのPGデータベースとローカルのSQLite3データベースの間に型キャストの違いがあるためです。一度それを修正したら、すべてうまくいった。私は、500のエラーによってサイトが一時的にアクセスできない状態になっていると思われます。そのため、私のサイトがホストされているサブドメインは何も返されませんでした。

ストーリーのモラル?残りのクライアントが動作します。ヘロク作品。レストクライアント(IMO)は500の例外をスローするべきではありませんが、HTTPレスポンスコードを返して、それを処理させてください。しかし、私がもっと泣いても、私は&を修正する必要があります。

+0

ストーリーのモラルは、ローカルでpostgresを使って開発することです: –

+1

PGをローカルで使うのが好きですが、Windows経由でRubyに接続する方法はわかりません。 –

0

ここにはさまざまな理由が考えられます。

単一のdynoを使用している場合は、要求を出すが、サイトに戻ってきますが、要求を処理するために使用できるdynoがないためタイムアウトになります。

サーバが外部アドレスで自分自身に戻って話すことができない場合がありますが、おそらくこれはおそらくdynoの問題でしょうか?

ジョン。

+0

私のコンピュータ上で私のクライアントクライアントソフトウェアが動作しています。私は単一のdynoを使用していますが、ウェブブラウザを使用してアプリを起動するとうまくいきます。また、私のレストクライアントクライアントは他のウェブサイトとうまく動作します。私のヒーローアプリじゃない。 –