我有一个用C#编写的浏览器帮助程序对象,当用户单击Windows窗体上的按钮时,会向我的服务器发出HTTPWebRequest POST,在正常情况下这很有用。然而,每隔一段时间,我就会得到一个似乎疯狂的BHO,并不断向我发送大量的HTTPWebRequests(每分钟大约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();
}
答案 0 :(得分:0)
当发生这种情况时,您是否可以让客户从他的电脑上获得Wirehark跟踪?
是否还有其他一些托管IE控件的对象,这会导致您的BHO被托管并开始触发请求?
不幸的是,除非你能在你的机器上获得一个repro,否则它只会在黑暗中拍摄。