2011-12-22 2 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(); 

Я пытаюсь использовать приведенный выше код для загрузки uri в xdocument. Я использую HttpWebRequest и WebResponse, чтобы избежать ошибки таймаута.ошибка внутреннего сервера при попытке загрузить содержимое в xdocument

Теперь проблема в том, что в большинстве случаев код работает, но в тот момент, когда я получал ошибку «тайм-аут» раньше, теперь перед лицом «Внутренней ошибки сервера (500)» при попытке использовать выше кода. Какие-нибудь подсказки о том, как решить эту проблему? Примеры кода были бы очень полезны.

Спасибо!

+1

Есть ли записи в журнале событий? – ChrisBint

+3

Исключение составляет, возможно, «GetResponse()». Вам нужно выяснить, что такое исключение. О, и вы также должны использовать инструкцию 'using' для' WebResponse' и потока ответов. –

+0

@JonSkeet ... да действительно ошибка вызвана в GetResponse() – Navyseal

ответ

0

Возможно, я ошибался, но ошибка сервера Http 500 Interal генерируется сервером, на котором вы указываете uri. Ваш код может быть правильным, но сервер возвращает ошибку. Вам нужно отладить серверный скрипт (если вы его контролируете) или альтернативно обрабатывать ошибку http 500 в вашем коде.

Вы должны вызвать uri непосредственно из браузера, чтобы узнать, вызывает ли это ошибку внутреннего сервера HTTP 500. Если это так (и вы управляете веб-сервером), вы можете проверить журнал сервера для получения более подробной информации.

Надеюсь, это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^