Как получить сведения об ошибке сервера IIS 500 при получении в WebException? - PullRequest
1 голос
/ 01 сентября 2011

У меня есть код, который использует HttpWebRequest для запроса страницы .ASP (asp 3.0) с некоторыми параметрами в URL. Эта страница ASP будет генерировать PDF, получая некоторые данные из базы данных. Из-за ошибки в коде ASP я получаю исключение WebException с ошибкой сервера IIS 500 при попытке получить ответ на запрос. И это нормально, но в сообщении об исключении на самом деле не говорится ничего, кроме 500.

Если я скопирую и вставлю URL-адрес, который запрашиваю в IE, я получу некоторые сведения, поскольку у меня отключены дружественные ошибки, а IIS настроен на отправку пользователю текста настоящей ошибки.

"Техническая информация (для обслуживающего персонала)

Тип ошибки: ADODB.Recordset (0x800A0CC1) Предмет не может быть найден в коллекции, соответствующей запрошенному имени или порядковому номеру. «

Я сделал QuickWatch для исключения и посетил все свойства, но ни один не содержал эти данные.

Есть ли способ получить эту информацию на WebException?

Спасибо.

1 Ответ

2 голосов
/ 01 сентября 2011

Есть ли способ получить эту информацию на WebException?

Да, вы можете прочитать тело ответа:

try
{
    ...
}
catch (WebException ex)
{
    using (var stream = ex.Response.GetResponseStream())
    using (var reader = new StreamReader(stream))
    {
        string text = reader.ReadToEnd();
        // text will contain the response from the server
    }
}
...