사용자가 Windows 양식의 단추를 클릭 할 때 HTTPWebRequest POST를 C#으로 작성한 브라우저 도우미 개체가 있는데 정상적인 경우이 방법이 효과적입니다. 그러나 매번 너무 자주 미쳐서 지속적으로 HTTPWebRequests (분당 50-100 개)를 엄청나게 보내는 BHO를 받게됩니다. 클라이언트가 PC를 재부팅하도록 동작을 중지 할 수있는 유일한 방법은 종종 사용자가 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();
}
Button은 실제로 BHO 내에 있습니까? 아니면 BHO가 다른 것에 연결되어 있습니까? 이 클릭이 발생하기를 바라는 것이 무엇이든간에 루프에 갇히거나 거의 실패해서는 안되지만 분명히 상승 조건이 있습니다. –
미안, "경쟁 조건" –
버튼은 내 BHO 내에 있으며, 기본적으로 일반 Windows 양식 앱처럼 설정됩니다. 단추를 클릭하면 단추에 대한 이벤트 처리기가 트리거되어 웹 요청이 만들어집니다. – Millhouse