2011-12-22 18 views
1
XDocument xDoc = new XDocument(); 
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); 
    req.Timeout = 1000 * 60 * 5; 
    WebResponse res = req.GetResponse(); 
    Stream responseStream = res.GetResponseStream(); 
    xDoc = XDocument.Load(responseStream); 
    responseStream.Close(); 

私は上記のコードを使用してxdocumentにuriをロードしようとしています。私はタイムアウトエラーを避けるためにHttpWebRequestとWebResponseを使用しています。xdocumentにコンテンツをロードしようとしたときに内部サーバーエラーが発生しました

問題は、ほとんどの場合コードが機能しますが、以前に「タイムアウト」エラーが発生した時点で、「内部サーバーエラー(500)」が発生しました。上記のコード。どのようにこの問題を解決するための手がかり?コード例は大きな助けになるでしょう。

ありがとうございます!

+1

イベントログには何らかのエントリがありますか? – ChrisBint

+3

'GetResponse()'によって例外がスローされている可能性があります。あなたは例外が何であるかを知る必要があります。ああ、また 'WebResponse'と応答ストリームに' using'ステートメントを使うべきです。 –

+0

@JonSkeet ...確かにエラーがGetResponse()で発生しました – Navyseal

答えて

0

私は誤っているかもしれませんが、あなたが呼んでいるuriをホストしているサーバーによってHttp 500 Interalサーバーエラーが生成されています。あなたのコードは正しいかもしれませんが、サーバーはエラーを返しています。サーバースクリプトを制御する場合は、それをデバッグするか、コード内のhttp 500エラーを処理する必要があります。

ブラウザから直接uriを呼び出すと、http 500の内部サーバーエラーが発生するかどうかを確認する必要があります。そうであれば(そしてWebサーバーを制御している場合)、サーバーログで詳細を確認できます。

これが役に立ちます。

関連する問題