У меня есть объект-помощник браузера, написанный на C#, который делает HTTP-запрос на HTTPWebRequest на моем сервере, когда пользователь нажимает кнопку на форме окна, и в нормальном случае это отлично работает. Однако каждый раз так часто я получаю BHO, который, кажется, сходит с ума и постоянно посылает мне огромное количество HTTPWebRequests (от 50 до 100 в минуту). Единственный способ, с помощью которого я мог остановить поведение, чтобы клиент перезагрузил свой компьютер, часто пользователи даже закрыли IE, но POST продолжают работать.Из-под контроля HTTPWebRequest
С кем-либо сталкивалось подобное поведение при использовании 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();
}
Так же есть кнопка на самом деле внутри BHO или BHO подключена к чему-то еще? Возможно ли, что все, что наблюдает за этим щелчком, застряло в цикле или есть условие повышения, которое почти никогда не должно терпеть неудачу, но, по-видимому, есть? –
извините, «состояние гонки» –
Кнопка находится в пределах моего BHO, она в основном настраивается как обычное приложение для форм Windows. Я нажимаю кнопку и запускает обработчик события для кнопки, которая затем делает веб-запрос. – Millhouse