我有一个用 C# 编写的 Browser Helper 对象,当用户单击 Windows 窗体上的按钮时,它会向我的服务器发出 HTTPWebRequest POST,在正常情况下,这很好用。然而,每隔一段时间,我就会收到一个似乎发疯的 BHO,并不断向我发送大量 HTTPWebRequest(每分钟大约 50 到 100 个)。我能够阻止让客户端重新启动他们的 PC 的行为的唯一方法,通常用户甚至关闭了 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();
}