Исключение тайм-аута при вызове GetResponse () - PullRequest
1 голос
/ 20 апреля 2011

Я создаю WebRequest для публикации некоторого содержимого HTML на другом веб-сервере.Когда я использую обычный текстовый контент, он работает, но когда я публикую HTML-контент, я получаю ошибку тайм-аута при вызове GetResponse().

WebResponse response = request.GetResponse()

Как я могу выяснить проблему?Я попытался добавить обработчик ошибок для WebException, но не смог отловить исключение.

Код запроса:

byte[] byteArray = Encoding.UTF8.GetBytes(sPostData);

// Create a request using a URL that can receive a post. 
WebRequest request = WebRequest.Create(httpUri);
// Set the 'Timeout' property in Milliseconds.
//request.Timeout = 20000;
// Set the ContentType property of the WebRequest.
request.ContentType = contentType;
// Set the Method property of the request to POST.
request.Method = postMethod;
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
using (Stream PostStream = request.GetRequestStream())
{
    PostStream.Write(byteArray, 0, byteArray.Length);
}
// Get the response.
using (WebResponse response = request.GetResponse())
{
    // Get the stream containing content returned by the server.
    using (Stream responseStream = response.GetResponseStream())
    {
        using (StreamReader reader = new StreamReader(responseStream))
        {
            string responseFromServer = reader.ReadToEnd();

            result = responseFromServer;
        }
    }
}

1 Ответ

0 голосов
/ 20 апреля 2011

Вы должны посмотреть на сетевой трафик, используя Fiddler или другое эквивалентное приложение.Это может показать вам, отвечает ли сервер вообще, или, возможно, он отвечает поздно.

Вам также следует просмотреть журналы сервера или журнал событий Windows - возможно, серверу не нравится отправка HTML,и регистрирует ошибку.В этом случае он может просто решить, что вы пытаетесь его взломать, и может решить вообще не отвечать вам.

...