Вне контроля HTTPWebRequest - PullRequest
       4

Вне контроля HTTPWebRequest

0 голосов
/ 15 января 2010

У меня есть объект Browser Helper, написанный на C #, который отправляет HTTP-запрос HTTPWebRequest на мой сервер, когда пользователь нажимает кнопку в форме окна, и в нормальном случае это прекрасно работает. Однако, время от времени, я получаю BHO, который, кажется, сходит с ума и постоянно отправляет мне огромное количество HTTPWebRequests (около 50-100 в минуту). Единственный способ, которым я смог остановить это поведение - перезагрузить клиент своим ПК, часто пользователи даже закрывали IE, но POST продолжают работать.

Кто-нибудь когда-либо видел подобное поведение при использовании HTTPWebRequest? Почти кажется, что какая-то логика повторения в соединении сходит с ума, но я не думал, что в HTTPWebRequest был встроен какой-либо механизм повторов, так что это кажется маловероятным.

Я неправильно настраиваю соединение, и есть ли хорошая стратегия для предотвращения чего-то подобного?

Вот как я настраиваю соединение:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(myUrl);
webRequest.Timeout = 30000;
webRequest.Method = "POST";
webRequest.KeepAlive = false;
System.Net.ServicePointManager.Expect100Continue = false;
webRequest.ContentType = "text/xml";
webRequest.ContentLength = myData.Length;

using (StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream()))
{
    requestWriter.Write(this.myData);
    requestWriter.Close();
}

1 Ответ

0 голосов
/ 15 января 2010

Можете ли вы сделать так, чтобы клиент получал трассировку проволочных сигналов от своего ПК, когда это происходит?

Может ли существовать какой-либо другой объект, на котором размещается элемент управления IE, что, в свою очередь, приводит к тому, что ваше BHO размещается и запускает запросы?

К сожалению, если вы не сможете получить репродукцию на своем компьютере, это будет просто выстрел в темноте.

...