Como obter informações de erro quando HttpWebRequest.GetResponse () falha

Estou iniciando um HttpWebRequest e recuperando sua resposta. Ocasionalmente, recebo um erro 500 (ou pelo menos 5 ##), mas nenhuma descrição. Eu tenho controle sobre os dois pontos de extremidade e gostaria que o receptor recebesse um pouco mais de informação. Por exemplo, eu gostaria de passar a mensagem de exceção do servidor para o cliente. Isso é possível usando HttpWebRequest e HttpWebResponse?

Código

try
{
    HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest;
    webRequest.Method = WebRequestMethods.Http.Get;
    webRequest.Credentials = new NetworkCredential(Username, Password);
    webRequest.ContentType = "application/x-www-form-urlencoded";
    using(HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
    {
        if(response.StatusCode == HttpStatusCode.OK)
        {
            // Do stuff with response.GetResponseStream();
        }
    }
}
catch(Exception ex)
{
    ShowError(ex);
    // if the server returns a 500 error than the webRequest.GetResponse() method
    // throws an exception and all I get is "The remote server returned an error: (500)."
}

Qualquer ajuda com isso seria muito apreciad

questionAnswers(4)

yourAnswerToTheQuestion