Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при работе с сетью 
V
    Опции темы
Brodyaga
Дата 14.8.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Всем доброго времени суток! Имеется такая проблема... Отправляю HTTP-запрос на сайт, затем получаю с него ответ, после этого отправляю второй запрос и получаю второй ответ. Если всё это запускать в обычном режиме, всё ок, а в режиме отладки, в месте где данные второго запроса пересылаются на сайт, выскакивает исключение типа мой хост компьютер принудительно разорвал соединение...  в чём деол помогите....
Вот код метода в котором вылетает эксепшен (До этого все настройки req выполнены верно, этот метод лишь отправляет запрос на страницу):

Код

        private HttpWebRequest req;
        private HttpWebResponse rsp;

        public HttpWebResponse SendRequest()
        {
            Stream st = null;
            rsp = null;
            rspText = null;

            // Create the request payload
            byte[] data = null;

            if (req.Method == "GET")
                data = new byte[0];

            if (req.Method == "POST" && mimePayload == null)
                data = Encoding.Default.GetBytes(postVars);

            if (req.Method == "POST" && mimePayload != null)
            {
                mimePayload.Finish();
                data = mimePayload.Data;
            }

            // Send the request payload if there is one (not applicable for GET requests)
            if (data.Length > 0)
            {
                try
                {
                    req.ContentLength = data.Length;
                    st = req.GetRequestStream();
                    st.Write(data, 0, data.Length);                    //Здесь вылетает эксепшн когда отправляем второй запрос
                }
                catch (WebException ex)
                {
                    throw ex;
                }
                finally
                {
                    if (st != null)
                        st.Close();
                }
            }

            // Try to get the HTTP response
            try
            {
                rsp = (HttpWebResponse)req.GetResponse();
            }
            catch (WebException ex)
            {
                throw ex;
            }

            // Return the response
            return rsp;
        }


Вот скриншот всего этого дела
user posted image

Помогите плиз кто знает в чём дело... 

P.S.
Фаервол отключал, всё тоже самое...
PM MAIL   Вверх
informatik
Дата 19.8.2008, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: нет
Всего: 6



Думаю при каждом новом запросе нужно основа создавать экземпляр HttpWebRequest.. 
--------------------
namespace informatik
PM MAIL   Вверх
Brodyaga
Дата 19.8.2008, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Он у меня и так каждый раз создаётся снова при присвоение URL...
Код

        public string Url
        {
            get
            {
                if (req == null)
                    return null;

                return req.RequestUri.OriginalString;
            }
            set
            {
                req = (HttpWebRequest)WebRequest.Create(value);

                // Don't allow 302 auto-redirects by default
                req.AllowAutoRedirect = false;
            }
        }


Какие ещё есть предположения? :((( А то я уже не знаю чо делать...
PM MAIL   Вверх
informatik
Дата 21.8.2008, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: нет
Всего: 6



Простенькие предложения:
1:
Цитата

// Send the request payload if there is one (not applicable for GET requests)

Может второй запрос GET?

2:
URL точно устанавливается при каждом новом запросе?


3: 
Ошибка прячется не в этом коде.....
--------------------
namespace informatik
PM MAIL   Вверх
Brodyaga
Дата 21.8.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Цитата

1:
Цитата

// Send the request payload if there is one (not applicable for GET requests)

Может второй запрос GET?


Нет второй запрос POST

Цитата

2:
URL точно устанавливается при каждом новом запросе?


Точно

Цитата

3: 
Ошибка прячется не в этом коде.....


Ошибку я нашёл... у req надо было изменить свойство KeepAlive на false. smile

Спасибо за попытки помочь! smile))

Это сообщение отредактировал(а) Brodyaga - 21.8.2008, 12:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0694 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.